Refactoring to a System of Systems
summary
Shows a concrete e‑commerce monolith (catalog, orders, inventory) and demonstrates refactoring to event-driven interactions using Spring: aggregates emit domain events via ApplicationEvent publisher and Spring Data annotations, a working demo uses embedded Kafka with Spring Kafka to publish/consume JSON payloads, and an alternative uses a RESTful event feed (Atom/Collection+JSON) where services persist events and poll HTTP. Compares tooling, testability, consistency (strong in-monolith vs eventual when split), latency, and operational costs; demos run successfully from the provided SOS GitHub samples.
AI-written summary · about
chapters (10)
- 0:00Introduction and context
- 1:14Monolithic systems analysis
- 10:02Current monolith structure
- 19:34Splitting into distributed systems
- 29:52Improving monolith with events
- 39:42Event-based monolith benefits
- 40:05Messaging approach comparison
- 50:21Demo of messaging integration
- 1:00:24Pure REST event integration
- 1:11:04Key takeaways and conclusion
related talks
40mFrom Monolith to Observable Microservices using DDD
54mReacting to an Event-Driven World
43mKey-Value, Event-Sourcing, Cqrs, Pub/Sub as a Service, Java, Javascript
52mBuilding monolith applications that could scale to microservices..
57mSplitting Monolith Application to Microservices
48mImplementing DDD with the Spring Ecosystem
50mA Practical Use Case of Software Architecture Evolution
46mState or events? Which shall I keep?
