Study Guide
Study Guide
02 - Decomposing
● What is requirements analysis
● “Strangling fig” or “Event interception” design pattern for legacy applications
● Most important considerations for creating good diagrams
● 3-step process for building microservice architecture
● Different Strategies for decomposition (defining services)
03 - Microservice internal
● Issues with layered architecture
● Hexagonal and Onion style architecture
○ Why inward dependencies?
● Transaction script VS (Rich) Domain Model
● Patterns to create a rich domain model
○ Entities, values, domain service and domain events
○ Aggregates and repository
● Different methods for handling queries in a microservice architecture
○ CQRS
● API composition pattern
04 - Microservice interaction
● Interaction styles and their advantages and challenges.
● Issues with synchronous interaction and how to eliminate them
● gRPC
○ Why/where to use it
○ Where not to use it
● Broker vs brokerless messaging
● Saga’s
○ What is it
○ What problem do they solve
○ advantages and disadvantages
○ How do they work?
● Choreography vs Orchestration
○ With examples
Case study r/place should not be known for the exam, but can be useful to better understand
the aforementioned concepts.
07 - Organizational structures
● Loosely Coupled Organizations
○ Goal
○ Stream-aligned teams
○ Importance of autonomy
● Communities of Practice
● Enabling teams
● Platform team
● Site Reliability Engineering
○ Error budget: what culture problem does it solve, and how.
● Strong ownership vs collective ownership: advantages and disadvantages
○ Full life-cycle ownership
● Enabling teams
○ Communities of Practice
○ Platform team
■ Paved road
● Internal open source
○ What & why?
● Do-ocracy
○ What & why?
08 - Change management
● Issues with doing a full software rewrite
○ How to do it well
● Patterns for avoiding breaking changes
○ Expansion change
○ Tolerant readers
○ Explicit interfaces
○ Versioning
● Patterns for separating upstream from downstream releases
○ Emulation
○ Coexisting/duplication
● Patterns for separating deployment from release
○ Feature toggles/flags
○ A/B testing
● What is WebAssembly
● What is the WebAssembly System Interface