- None
- Introduction
• Monolithic vs microservice architecture
• Breaking up an application
• How microservices communicate with each other
• What microservices are
• Technology
• Advantages and disadvantages of microservices
• When should you use them, and when shouldn’t you use them?
- Service Design
• Designing the business logic for your application
• Understanding event sourcing
• Interacting with external APIs
- 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
- Testing
• End-to-end testing in a microservice world
• Test types and feedback
• Consumer-driven contracts
- Observability
• Log aggregation
• Correlation IDs
• Metrics collection
• Semantic monitoring & synthetic transactions
• 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