In Chapter 1, Understanding Microservices, we said that the natural way to build a microservices-based app is to start with a monolithic version that implements all the features, and then to split it into microservices where it makes sense. Trying to come up with a perfect design based on several microservices on day one is a recipe for disaster. It's very hard to know how the application is going to be organized and how it will evolve when it matures.
In this chapter, we will go through this process by building a monolithic application where we're implementing the required features. Then we'll look at where the app can be decomposed into smaller services. By the end of the chapter, we'll end up with a microservices-based design.
The chapter is organized into three main sections:
- Presentation of our Runnerly application and its user stories...