Web application architecture, N-tiers, 3 tiers or multi-layer

530 views Asked by At

I would like to know what is the architecture of my application. I developed a web application to automate deployment procedure that has many components:

  • a GUI front end (HTML, CSS , JS)
  • back end (Flask)
  • Mysql database

The back-end interacts with several external APIs and hosting servers. So it's basically something like this : architecture mockup http://img15.hostingpics.net/pics/330786Capture.png

Also the back-end is composed of several component (one for each external interaction and one that coordinates between all the other components)

I made some research and I didn't figure out if it's a 3-tiers, n-tiers or multi-layered architecture.

I know that 3-tiers and n-tiers architectures are based on physical separation of the application components, while the multi-layered architecture is a logical one. But I don't know if I can consider the external API providers as a component of the application (so they will be a physical components, then my application will be a n-tiers one). Or otherwise I should consider the external interaction components as logical, and then my application will be 3-tiers with a tier that is multi-layered. (the backend)

1

There are 1 answers

0
guillaume31 On

I'd say it is a 3-tier application with a multi-layered middle tier, and maybe a multi-layered front end if you have complex Javascript (e.g. with a pattern such as MVVM) on the client side.

As a side note, this kind of classification used to make sense back when mono and 2-tier applications were still big and the web was not so prevalent. Now with the rise of microservices and REST API's, it's much less relevant IMO. You basically can't count the number of tiers taking part in an average application, and multi-layer (whether original layered architecture or a variant of Hexagonal or Onion) is pretty much the norm.