Microservices Architecture

In this course you will learn about how to design large scale distributed systems using microservices.
One size doesn't fit all, so in this course you will learn:

  • Distributed system principles, such as CAP theorem and the 10 Fallacies of distributed computing
  • The importance of AutonomyLoose Coupling and High Cohesion
  • How to identify Domain centric Services aligned with Business Capabilities
    • You will learn about the core principles of Domain Driven Design (DDD), Event Storming, Event Modeling       
    • Conways law in relation to Team ownership and alignment with services
  • Learn the different communication styles
    • Synchronous vs Asynchronous communication
    • When to use synchronous communication such as REST, gRPC, GraphQL
  • How and when to use loosely coupled messaging communication between Services
    • You will learn what Events are and how they can be used to decouple Services in time and how they can increase business decoupling
    • You will also learn what an Event Driven Architecture (EDA) 
    • How we can coordinate Business Processes that involve multiple services , such as Sagas or Process Managers.
    • Event replayability
    • API strategies
    • Transactions
  • What are Services and what are Microservices
  • How you can decompose your Services into smaller manageable units
    • Microservices vs Autonomous Components
    • Layers vs Tiers
  • Deployment strategies
    • Individually deployed units vs co-located monolithic unit
    • Versioning strategies
    • CI/CD
    • Containers (Docker / Kubernetes)
  • Security
    • Who handles authentication and authorization?
    • What about Business vs Technical authorization
  • What role does the UI play
    • If the backend services are nicely decoupled how do we avoid coupling everything together on the UI?
    • You will learn about microfrontends / composite UI's
  • Infrastructure requirements
    • What kind of infrastructure is needed to build a successful distributed system based on microservices?
    • How to handle Service discovery
    • Monitoring and logging requirements
    • What is a ServiceMesh and an API Gateway and do you need them?
    • Should you go for a Broker (such as Kafka or Solace), Grid based (such as Hazelcast) or Federated Bus infrastructure?
    • Serverless
  • Migration strategies
    • How to migrate from a Monolithic code base towards a microservice oriented code base
  • Integration strategies
  • Implementation strategies
    • Pattern languages
    • CQRS
    • EventSourcing
    • Microservices by example using Spring Boot (for Java oriented teams)

This course can be taught as a 1-5 day course. We will adapt it to your needs. Contact us for more information, pricing and availability.
If you're curious about our approach and views on Microservices please view our videos or blogposts