February 23–26, 2020
Please log in
Please log in

Practical microservices: Hands-on event-driven architectures with event sourcing and CQRS

Ethan Garofolo (Berkadia Commercial Mortgage)
1:30pm5:00pm Monday, February 24, 2020
Location: Murray Hill
Secondary topics:  Anti-Pattern, Best Practice, Hands-on
Average rating: ***..
(3.25, 8 ratings)

Who is this presentation for?

  • CTOs, software architects, and senior software engineers




Model-view-controller (MVC) and CRUD are great tools for prototyping applications, but they inevitably lead development teams to the dreaded monolith wall, where progress slows to a crawl and everyone goes and applies for a new job. Microservices architecture can help you deliver value and stay productive in the long run.

Most tutorials on the subject meander through theory or completely miss the point of what it means to be microservice based, but not so with Ethan Garofolo. Here you’ll learn that a monolith is a data model and not a deployment or code organization strategy. You’ll experience how simply deploying pieces of your monolithic application onto different servers just leaves you with all the problems your monolith already has, only now with 100% more distributed system problems. You’ll learn precisely why this approach isn’t microservices.

With that out of the way, you’ll immerse yourself in a workable alternative: autonomous services that communicate via asynchronous messages and pub/sub. Through hands-on examples, you’ll see how pub/sub enables autonomy in the components of your system, and you’ll learn the basic building blocks of an autonomous microservices-based architecture.

You’ll model system state as events—records of things that have happened—then take those events and reshape them into formats that make sense for the UIs you need to provide your users. You’ll leave with an understanding of the basics of microservices and where to go to continue learning.

Prerequisite knowledge

  • Experience coding in Node.js
  • Familiarity with PostgreSQL and basic Docker commands (useful but not required)

Materials or downloads needed in advance

  • A laptop with Docker and a code editor installed and the ability to run Node.js programs (nvm recommended on macOS and Linux; nvm-windows recommended for Windows)
  • Please download the following two images before coming on-site.

  • Image 1

    Image 2

What you'll learn

  • Discover why a monolith is a data model and not a deployment or code organization strategy, why deploying portions of a monolith onto different systems doesn't make microservices, how autonomy is the defining quality of microservices, and how a pub/sub architecture enables that autonomy
  • Learn why event-sourced microservices and CQRS are a good architectural choice even if you're not at Google scale
  • Build a functioning, albeit small, microservices-based system
Photo of Ethan Garofolo

Ethan Garofolo

Berkadia Commercial Mortgage

Ethan Garofolo is a software architect at Berkadia Commercial Mortgage. He’s been a professional programmer since 2006 and has worked both ends of the abstraction hierarchy, from device drivers to web-based systems. For the past few years, he’s been working exclusively on microservices projects and is the author of Practical Microservices (Pragmatic Bookshelf). He was also lead vocalist in a punk rock band.

Comments on this page are now closed.


Picture of Ethan Garofolo
Ethan Garofolo | Software Architect
02/23/2020 2:42pm EST

Hey Jigar,

If you pull down the workshop repo , and you have docker installed, if you run “docker-compose up” from within the project, the docker compose mechanics should pull down both images for you. Please post back if that doesn’t work.

Jigar Shah | Software Engineer
02/23/2020 2:33pm EST

How to download this second image?

  • IBM
  • LaunchDarkly
  • LightStep
  • Red Hat
  • ThoughtWorks
  • Auth0
  • Check Point Software
  • Contentful
  • Contrast Security
  • Datadog
  • Diamanti
  • Octobot.io
  • Optimizely
  • Perforce
  • Robin.io
  • SmartBear
  • Tidelift
  • WhiteSource
  • Synopsys
  • AxonIQ
  • Codefresh
  • CodeStream
  • Hello2morrow
  • LogRocket
  • Rookout
  • Solo.io
  • CNN
  • Boundless Notions, LLC

Contact us


For conference registration information and customer service


For more information on community discounts and trade opportunities with O’Reilly conferences

Become a sponsor

For information on exhibiting or sponsoring a conference


For media/analyst press inquires