This chapter introduces the different architectural approaches or styles. Each section will discuss a different approach to designing software with its pros and cons, as well as describe when and how to apply it to reap its benefits. We'll begin this chapter by comparing stateful and stateless architectures. Next, we'll go from monolith systems, through various types of service-oriented designs, all the way to microservices. Then, we'll start to look at architectural styles from different angles by describing event-based systems, layered systems, and finally, modular designs.
Once you have completed this chapter, you'll be familiar with the following topics:
- Deciding between stateful and stateless approaches
- Understanding monoliths—why they should be avoided, and recognizing exceptions
- Understanding services and microservices
- Exploring...