Whenever we start working on an application, the first thing we need to decide is the design or architecture we are going to use. As the software industry has matured in the last few decades, the way we used to design the systems has also changed. In this chapter, we will discuss some of the important architecture trends we have seen in the recent past and which are still relevant to date. We will try to analyze the good, the bad, and the ugly of these architectural patterns and figure out which pattern will be able to solve what type of problem. We will cover following topics in this chapter:
- What is application architecture?
- Layered architecture
- Model View Controller architecture
- Service-oriented architecture
- Microservices-based architecture
- Serverless architecture