Michal Zalecki
Michal Zalecki
software development, testing, JavaScript,
TypeScript, Node.js, React, and other stuff

Review: Practical Microservices by Ethan Garofolo

This article is a first book review on this blog. I'm going to see whether this format sticks. I've got "Practical Microservices. Build Event-Driven Architectures with Event Sourcing and CQRS" by Ethan Garofolo from a friend. I didn't start reading it immediately, partially because I had other things on my plate related to work and side-project. The other, and to be honest, a primary reason was that I'm not that interested in microservices. But I do fancy Event Sourcing and CQRS!

Where I'm at has nothing do to with microservices hype in recent years. Microservices can be great, but I just find modular monoliths a better approach to what I work on right now. That said, it quickly becomes apparent the book isn't really about microservices. It's more about the ideas and principles of writing modular software and a good introduction (or reminder) to Event Sourcing and CQRS. Whether you deploy your components separately or as one modular monolith is not the most important thing.

Throughout the book, you develop an event-sourced system using simple (by design) message-db, an event store built on top of PostgreSQL. Simplicity is a common theme, and I enjoyed that a lot: simple language, simple tools, simple examples. Is it too simple? No. It's structured well with references to what you've done a few chapters back.

I didn't enjoy the deployment chapter and finally skipped it. The author uses Heroku, and it's pretty basic stuff.

Ethan Garofolo is honest with the reader and reminds you that using code from the book in a production system is not recommended. It still doesn't take away anything from the educational value of the book. The last chapter shows what to pay attention to and what to focus on next. It leaves the reader encouraged to keep exploring event-driven architectures on his own from here.

Rating: 4/5

Photo by Sincerely Media on Unsplash.