Chapter 9. Case study: Nodezoo.com

 

This chapter covers

  • Designing a full microservice system
  • Building core services
  • Creating a flexible development environment
  • Developing a risk-reducing, continuous delivery pipeline
  • Growing, adapting, and scaling the system

Working code is the best way to demonstrate any software engineering principle. You deserve to see what microservice code looks like in a real system, so that you can make a genuine assessment of the consequences of using this architecture. This chapter walks you through a small but complete system that covers all the topics discussed in this book.

This is a learning system, and there are many obvious omissions and flaws that would be fatal in production. This is deliberate, for two reasons: limited space in this book and, of far more consequence, because this is exactly the way you should develop a production system in its early days! The microservice architecture is supposed to make it easier to go from a toy demonstration to a high-scale production system, in a finite number of iterations. Early in any project, the biggest win comes from showing working code, even if it’s just on your laptop. If this case study were a commercial project for a client, I’d build it following a path similar to that described here.[1]

1I beg forgiveness for the considerable poetic license in the timeline of the iterations, but they also serve as headings in this chapter!

9.1. Design

9.2. Deliver

9.3. Brave new world