Refactor to Reactive with Spring 5 and Project Reactor
summary
Refactors a GitHub‑chat service to nonblocking I/O using Spring 5 and Project Reactor, replacing blocking REST templates and blocking Mongo with a reactive Mongo driver, switching controllers to return Flux and Mono, using WebClient, Netty and WebSocket for push, and applying retry, caching and overflow strategies so the app continues to respond when external sources or the DB drop. Demonstrates running system, shows statistics reappear after DB restart, then splits into microservices with Spring Cloud Stream and a message broker to achieve horizontal scaling.
AI-written summary · about
chapters (28)
- 0:00Introduction
- 1:51Talk goals and structure
- 3:16Chat app description
- 5:35Current app architecture
- 7:26Current system problems
- 10:05Solution: reactivity
- 12:17New system architecture
- 12:59Project Reactor and Spring 5
- 15:09Design summary
- 16:03Dependency updates
- 17:31Contract changes
- 20:44Reactive repositories
- 21:29Service refactoring
- 23:17External communications
- 26:54Chat service refactor
- 27:59Mass service refactor
- 29:29Stats refactor
- 33:52Controller refactor
- 36:21Testing new system
- 37:31App launch
- 38:41System resilience
- 41:14Comparison with manifesto
- 42:19Cloud scaling
- 43:48Microservice split
- 48:42System scaling
- 49:04Final recommendations
- 50:08Reactivity pros and cons
- 51:34Learning resources








