Designing Microservices

Here is a sample two day class, giving you an idea of some of the topics that we can cover. Please note that this list is not exhaustive.

Introducing Microservices

  • What microservices are
  • Technology
  • Advantages of microservices
  • Disadvantages of microservices
  • When should you use them, and when shouldn’t you use them?

Service Modelling

  • Characteristics of “good” services
  • Introduction to domain driven design
  • Usefulness of Bounded Contexts when defining service boundaries
  • Event Storming and Capability Modelling

Splitting out services

  • Planning a transition
  • Incremental decomposition patterns
  • Splitting the schema
  • Discussion of CAP theory, distributed transactions and eventual consistency

Service Collaboration

  • Synchronous vs asynchronous
  • Event-based collaboration vs
  • Request/Response
  • Coverage of technology options
  • including REST, RPC, Actor
  • frameworks, Message Brokers including Kafka
  • Choreography vs Orchestration


  • End-to-end testing in a microservice world
  • Test types and feedback
  • Consumer-driven contracts


  • Log aggregation
  • Correlation IDs
  • Metrics collection
  • Semantic monitoring
  • Real-user monitoring
  • Synthetic Transactions

Resiliency & Scaling

  • Types of scaling (scaling cube + more)
  • Scaling for load vs scaling for resiliency
  • Circuit Breakers and connection pooling
  • Bulkheads & timeouts
  • Service Meshes & Message Brokers

Target Audience
People who are facing challenges around distributed systems, and thinking about migrating from an existing monolith to microservice architecture

About the trainer
Sam Newman is interested in technology at the intersection of things, from development, to ops, to security, usability and organisations. After over a decade at ThoughtWorks he is now an independent consultant. Sam is the author of "Building Microservices" from O'Reilly. He has worked with a variety of companies in multiple domains around the world, often with one foot in the developer world, and another in the IT operations space.

If you asked him what he does, he’d say ‘I work with people to build better software systems’. He has written articles, presented at conferences, and sporadically commits to open source projects. While Java used to be his bread and butter, he also spends time with Ruby, Python, Javascript, and Clojure, Infrastructure Automation and Cloud systems.

You can connect with Sam on Twitter @samnewman

Date: October 14 - 15, 2020
Duration: 09:00-17:00 CET
Technical setup: More info about course will be provided after sign-up
Price: dkr 7,450 / € 999 - excl. VAT

Organized by