Airbnb migrated from a Ruby on Rails monolith ("monorail") to a Service-Oriented Architecture with four layers: data services, derived services, middle-tier services, and presentation services. The migration used dual reads with response comparison for read paths and shadow databases for write paths to ensure correctness before switching traffic. Key principles included single service data ownership, specific concerns per service, event-driven data changes, and proper observability. Important lessons emphasized investing in migration infrastructure early, simplifying dependencies, recognizing cultural organizational change, and viewing migration as an ongoing journey.

4m read timeFrom newsletter.systemdesigncodex.com
Post cover image
Table of contents
The Rules of the GameThe SOA DesignThe MigrationLessons
8 Comments

Sort: