chapter two

2 FTGO: A case study in moving from one kind of development hell to another

 

This chapter covers

  • How an organization can outgrow a monolithic architecture
  • How migrating a monolith to microservices can go terribly wrong

Many organizations have enthusiastically adopted the microservice architecture, only to then struggle with it. In this chapter, I’m going to tell the story of a fictitious, online food delivery business called Food to Go (FTGO) that did exactly that. Due to their success, the FTGO organization and their application had outgrown their monolithic architecture. As a result, the microservice architecture was an excellent fit for the scale and complexity of their organization and main application. But sadly, as the story describes, their enthusiasm for the microservice architecture combined with the lack of experience led them to make several critical mistakes - mistakes that I’ve seen numerous real organizations make. FTGO ended up replacing one kind of architectural hell with another.

2.1 FTGO architecture V1: The eventual descent into monolithic hell

2.1.1 The architecture of the FTGO application

2.1.2 Why the monolithic architecture worked well initially

2.1.3 Living in what they thought was monolithic hell

2.2 FTGO architecture V2: Fine-grained microservices everywhere - a different kind of hell

2.2.1 How FTGO adopted the microservice architecture

2.2.2 The V2 architecture of the main FTGO application

2.2.3 What worked well with the V2 architecture

2.2.4 What went wrong with their microservice architecture

2.3 Summary