Refactoring Legacy Apps with APIs and Messages
summary
A concrete plan: split the Rails monolith into small apps wired by internal HTTP APIs and an async message bus, move persistence and auth into separate services, and treat persistence as a service consumed by listeners. Practical tools mentioned include engines, Code Climate, Draper/Presenters, Faceted, Heroku, Postgres and optional Mongo or Node consumers. One codebase had a 2000+ message user model which yielded only an API with 12 methods when extracted; teams built a persistence API reporting API messaging API and shipped a sales dashboard in hours that raised conversion.
AI-written summary · about
chapters (20)
- 0:00Intro
- 0:37Architecture
- 2:07Big Out Front Design
- 3:03Ad hoc Architecture
- 6:12How did we get here
- 7:56hexagonal design
- 10:54APIs and messages
- 13:08Objectoriented design
- 15:48Legacy applications
- 20:39Synchronicity
- 21:46Presenter Pattern
- 25:04Benefits
- 25:40Autonomy
- 26:49Downtime
- 27:53True TDD
- 28:16Btesting
- 29:44Flexibility
- 30:13democratization of architecture
- 31:00conclusion
- 31:18Outro
related talks
27mScaling a Rails Monolith w/Event Driven Microservices
20mSafely Decomposing a Highly Available Rails App
40mService Architectures for Mere Mortals
37mArchitecture: The Next Generation
41mOff the Tracks - Challenging the Rails Mindset
36mWorking Compassionately with Legacy Code
23mAbstracting a Service - A Case Study in Forward Thinking with SOA
34mSOA and the Monolithic Rails App Anti-Pattern
