Microservices with Sam Newman [2-Day]

GOTO Academy NL

Microservices with Sam Newman [2-Day]


Contact Us for Pricing

Do you have any questions?


 In this 2-day workshop, Sam Newman will share some framing for microservice architectures that explore the various forces that can drive the design and evolution of microservices, and then you'll participate in a series of interactive architectural kata exercises to put your new found knowledge to the test. Afterwards, you'll have a series of tools to take back to your own organisations to put into practice.

This workshop will cover:

  • What makes a good microservice
  • How to use concepts from domain driven design to define service boundaries
  • Explore how to plan and manage a migration from a monolith to the microservice architecture
  • Understand how technical choices can impact the architecture itself
  • How to manage change and governance in a microservice environment

Day 1 Course Outline

Introducing Microservices

  •  What microservices are: Technology & SOA
  • 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 Splitting Out Services
  •  Working out where to start
  •  Splitting stateless services
  •  Database refactoring patterns
  •  Use of strangler and branch by abstraction patterns
  •  Discussion of CAP theory
  •  Distributed transactions
  •  Eventual consistency

Day 2 Course Outline

Service Collaboration

  •  Pitfalls of service collaboration
  •  Synchronous vs asynchronous
  •  Event-based collaboration vs Request/Response
  •  Coverage of technology options including: HTTP over 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
  •  Testing in production?
  •  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
User Interfaces / Mobile
  •  UI aggregation models
  •  General-purpose API gateways
  •  Backends-for-frontends
  •  GraphQL
*Please note that the outlines above are purely indicative. There's the flexibility to spend more (or less) time on specific subjects, and this can usually be accommodated as the material is broken down into modules that can be swapped around. This will be determined during the class based on the direction trainee's wish to cover. 
*The course itself is not a hands-on coding class, but is designed to be interactive with lots of time for attendees to work together and ask questions.

People who are in the process of moving to microservices, or are already on the path should get a lot out of the event. It's primarily aimed at people in technical leadership positions like tech leads and architects, but should be of use to any developer or operations person interested in how to move to microservices. Prior knowledge of service oriented architectures generally or microservices specifically is useful, but by no means essential.
Attendee Requirements:

This is a participatory workshop. You won't get to just sit there and watch - the more you participate in the workshop, the more you'll get out!