Designing Distributed Systems Workshop
Software architects have no clean, easy decisions: everything is a terrible tradeoff. Architecture has lots of difficult problems, which this platform-agnostic class highlights by investigating what makes architecture so hard, particularly with distributed systems like Microservices. Should you break apart your monolithic system? What size should your services be? How do you break apart data? What communication protocols should you use? Should you use orchestration or choreography to manage your distributed workflows? How do you manage a distributed transaction and still maintain data integrity and consistency? How do you deal with shared code?
This workshop addresses all these hard questions and more. You’ll learn about the differences between modularity and granularity, how to choose the right size for a service, and how to break apart monolithic data. You’ll learn about different communication protocols for communicating between services, how to reconnect distributed data, whether your
workflow should use orchestration or choreography, and how to manage distributed transactions while still maintaining some level of data consistency and integrity.
Software architecture is full of hard parts. By attending this 1-day workshop you can gain the insights and techniques to make it just a little softer.
Workshop Topics and duration:
Unit 1: Architectural Modularity
- Why move to or create distributed systems?
- Business and technical drivers
- Migration patterns and approaches
- Hands-on exercises: Migration drivers
Unit 2: Architectural Quantum
- Defining an architectural quantum
- Application partitioning
- Quantum examples
Unit 3: Service Granularity
- Granularity disintegration drivers
- Granularity integration drivers
- Analyzing tradeoffs
- Hands-on exercises: Determining service granularity
Unit 4: Breaking Apart Monolithic Data
- Drivers for data decomposition
- Creating Data domains
- Resolving data dependencies
Unit 5: Remote Data Access Patterns
- Interservice communication
- Data schema replication
- In-memory data grids
- Data sidecar pattern
- Data domain
- Hands-on exercises: Accessing remote data
Unit 6: Communication Protocols
- Synchronous communication
- Asynchronous communication
- Dynamic quantum entanglement
Unit 7: Managing Workflows
- Defining orchestration
- Defining Choreography
- Analyzing tradeoffs
- Hybrid topologies
- Hands-on exercises: Choosing a workflow type
Unit 8: Transactional Sagas
- Atomic transactions vs. eventual consistency
- Three dimensional sagas
- Epic Saga
- Fantasy Fiction Saga
- Fairy Tale Saga
- Parallel Saga
- Phone Tag Saga
- Horror Story Saga
- Time Travel Saga
- Anthology Saga
- Transactional Saga Tradeoffs
- Hands-on exercises: Transactional Sagas
**Exempt training services in accordance with article 20.9 of VAT Law 37/1992