Asynchronous by Default, Synchronous When Necessary
summary
Discusses making systems asynchronous by default while allowing synchronous behavior where necessary, focusing on Java ecosystem practices. Covers asynchronous programming techniques and patterns, and when to apply synchronous operations to meet requirements such as ordering or blocking.
AI-written summary · about
chapters (18)
- 0:00System design intro
- 1:29Monolith vs microservices
- 7:50Distributed systems problems
- 15:15Distributed architecture consequences
- 15:36Hollywood principle
- 19:28Service design golden rule
- 21:14Inverting service communication
- 24:04Asynchronous by default
- 27:15Temporal coupling
- 28:00Event database
- 31:11Offline-first apps
- 33:43Event sourcing in practice
- 38:41Event sourcing caveats
- 43:17Reliable system design
- 44:15Q&A: Event versioning
- 46:00Q&A: Stateless services
- 47:51Q&A: First-time startup
- 49:18Summary
related talks
52mSynchronous and Asynchronous Programming - Two Worlds You Can Combine
43m!sync: asynchronous interaction
36mAsynchronous Programming on the .NET Platform
01h 01mMultithreading vs Asynchronous Programming: The Architectural Shift
47mYou Keep Using That Word
58mConcurrency in Spring Boot Applications: Making the Right Choice
29mComparative Asynchronous Programming
47mEverything Loosely Coupled - Advanced Integration Patterns and Their Trade-Offs
