SlideShare a Scribd company logo
How to Tame
Your Services:
Evolving Airbnb’s
Architecture
Jessica Tai / 5 March 2020 / ScaleConf
@jessicamtai
@jessicamtai
@jessicamtai
San Francisco
@jessicamtai
Scaling our engineering team
Beijing
San Francisco
Portland
New York City
MontrealSeattle
Los Angeles
San Jose
@jessicamtai
Hi. I’m Jessica.
I pair program with my Corgi dog.
@jessicamtai
Agenda
Architecture history
Monolith
Scaling challenges
Services
SOA v2 patterns
Abstraction
Lessons learned
Takeaways
@jessicamtai
Agenda
Architecture history
Monolith
Scaling challenges
Service
SOA v2 patterns
Abstraction
@jessicamtai
Lessons learned
Takeaways
Agenda
Architecture history
Monolith
Scaling challenges
Services
SOA v2 patterns
Abstraction
@jessicamtai
Lessons learned
Takeaways
Agenda
Architecture history
Monolith
Scaling challenges
Services
SOA v2 patterns
Abstraction
@jessicamtai
Lessons learned
Takeaways
Growth, growth,
growth!
Vanja Josifovski, Airbnb Homes CTO
“
@jessicamtai
SOA V2SOA V1Monolith
2008 - 2016 2016 - 2019 2019 - present
Airbnb architecture phases
@jessicamtai
SOA V2SOA V1Monolith
2008 - 2016 2016 - 2019 2019 - present
Airbnb architecture phases
@jessicamtai
SOA V2SOA V1Monolith
2008 - 2016 2016 - 2019 2019 - present
Airbnb architecture phases
@jessicamtai
Monolith
2008 - 2016
@jessicamtai
Monorail,ourRubyonRailsmonolith
@jessicamtai
Architecture pre-2016
Monolith
Client traffic
Shared
database
Monorail
Data access query
Business logic
Presentation view
@jessicamtai
Architecture pre-2016
Monolith
Client traffic
Shared
database
Monorail
@jessicamtai
Moreincidents Slowerdeploytrains
@jessicamtai
Moreincidents Slowerdeploytrains
@jessicamtai
SOA v1
2016 - 2019
@jessicamtai
Architecture 2016
Service-oriented arch (SOA)
API traffic
Routing & view
Business logic, model, data
via services
Client traffic
@jessicamtai
Monorail
Architecture 2016
Service-oriented arch (SOA)
@jessicamtai
Architecture 2016
Service-oriented arch (SOA)
@jessicamtai
Data service:
Entity read and writes
Architecture 2016
Service-oriented arch (SOA)
@jessicamtai
Computed data
service:
Combines data
sources
for multiple contexts
Architecture 2016
Service-oriented arch (SOA)
@jessicamtai
Middle-tier service:
Complex business
logic
Architecture 2016
Service-oriented arch (SOA)
@jessicamtai
Presentation service:
Synthesize data for
web and mobile UI
Checkout presentation
@jessicamtai
Homes data
Validation
mid-tier
Pricing
computed data
Architecture 2018
Service-oriented arch (SOA)
API gateway
Middleware
Session data
service
Authentication
data service
Oauth data
service
Risk computed
data service
...
Request
context
Web rendering
service
HTML view
@jessicamtai
Routing
Presentation, logic, data
2019
After 3 years of migration,
enforced “Monorail freeze”
@jessicamtai
@jessicamtai
SOA wins
Performance wins due to
parallelization of dependencies
@jessicamtai
SOA wins
Faster code deployment
@jessicamtai
SOA wins
Better guarded, reliable code
@jessicamtai
Scaling challenges
with SOA v1
@jessicamtai
@jessicamtai
@jessicamtai
@jessicamtai
Growth, growth,
growth!
Vanja Josifovski, Airbnb Homes CTO
“
@jessicamtai
@jessicamtai
Monorail
Data access query
Business logic
Presentation view
Monorail mapped to SOA v1
@jessicamtai
Monorail
Data access query
Business logic
Presentation view
Monorail mapped to SOA v1
@jessicamtai
Monorail
Data access query
Business logic
Presentation view
Monorail mapped to SOA v1
Monorail mapped to SOA v1
@jessicamtai
Monorail
Data access query
Business logic
Presentation view
Data
Mid-tier
Mid-tier
DataData
@jessicamtai
Outgrowing SOA v1
Number of services at Airbnb
0
150
300
450
600
2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
500+ engineers
2,000+ engineers
@jessicamtai
Challenges with SOA v1
Defect rate
Fragmented business
logic
Developer velocity
Too many
dependencies
New verticals
Scattered, custom
APIs & schemas
Scalability
Unguarded data
access
@jessicamtai
SOA v2
2019 - present
@jessicamtai
Slow developer velocity:
Too many dependencies
@jessicamtai
SOA v2 patterns:
Decompose
presentation services
@jessicamtai
SOA v1
Bloated presentation services
Presentation
UI logic
Data fetching
Business logic
@jessicamtai
SOA v2
Decompose presentation services
Presentation
UI logic
Data aggregation service
Business logic
@jessicamtai
@jessicamtai
Home highlights
@jessicamtai
Presentation
UI logic
A) Server-driven UI:
Display layout of home highlights
@jessicamtai
Presentation
UI logic
Data aggregation service
Reviews UserHomes
B) Aggregate data:
homes, reviews, user data stores
@jessicamtai
Presentation
UI logic
Data aggregation service
Business logic
DataData
C) Apply business logic:
Rank top highlights
@jessicamtai
Lack of scalability:
Unguarded, suboptimal access to data
@jessicamtai
SOA v2 patterns:
Aggregator
@jessicamtai
DataDataData
@jessicamtai
[SOA v1] No access control
Any service can call any other service
Presentation
Data DataData DataDataData
Data aggregation service
@jessicamtai
[SOA V2] Aggregator
{
reservation {
checkin_date,
guest {
first_name,
picture
},
host {
first_name,
picture
},
}
}
@jessicamtai
[SOA V2] Aggregator
Data aggregation service
Resolver Resolver Resolver
Map fields to
data source
Data aggregation service
{
reservation {
checkin_date,
guest {
first_name,
picture
},
host {
first_name,
picture
},
}
}
Resolver Resolver Resolver
Map fields to
data source
@jessicamtai
[SOA V2] Aggregator
Data aggregation service
{
reservation {
checkin_date,
guest {
first_name,
picture
},
host {
first_name,
picture
},
}
}
Resolver Resolver Resolver
Map fields to
data source
@jessicamtai
[SOA V2] Aggregator
Data aggregation service
{
reservation {
checkin_date,
guest {
first_name,
picture
},
host {
first_name,
picture
},
}
}
Resolver Resolver Resolver
Map fields to
data source
@jessicamtai
[SOA V2] Aggregator
[SOA V2] Aggregator
Data aggregation service
{
reservation {
checkin_date,
guest {
first_name,
picture
},
host {
first_name,
picture
},
}
}
Resolver Resolver Resolver
ServiceService
Batch fetch
fields
@jessicamtai
Migration to aggregator
Presentation
Data DataData DataDataData
Data aggregation service
API unchanged
@jessicamtai
Poor defect rate:
Scattered, duplicated business logic
@jessicamtai
SOA v2 patterns:
Computed data as a
platform
@jessicamtai
@jessicamtai
“Superhost” status
•# of reservations
•High review ratings
•No cancellations
Service
[SOA v1] Fragmented computed data
Superhost example
Reservations
data service
@jessicamtai
Reviews data
service
Cancellations
data service
Client
Service
Superhost example
Owned by
separate teams
Reservations
data service
Reviews data
service
Cancellations
data service
@jessicamtai
Client
[SOA v1] fragmented computed data
Service
Service
[SOA v2] Computed data as modular platform
Superhost example
Client
Computed data
platform service
Reservations
data service
Data source config
Data attribute Source
A Reservations
B Reviews
C Cancellations
@jessicamtai
Reviews data
service
Cancellations
data service
[SOA v2] Computed data as modular platform
Superhost example
Computed data
platform service
Data source config
Business logic lambda
boolean isSuperhost(A, B, C) {
return A && B && C;
}
Reservations
data service
@jessicamtai
Reviews data
service
Cancellations
data service
Client
Computed data as modular platform
Superhost example
Computed data
platform service
Offline pipeline &
index framework
A
B
C
Eventual
consistency
@jessicamtai
Client
Migration to computed data
Computed data
service
DataDataDataData
Compare responses
from codepaths
Service
Presentation
@jessicamtai
Offline
comparison
framework
Difficult to onboard verticals:
Custom APIs slow to navigate
@jessicamtai
SOA v2 patterns:
Service blocks
@jessicamtai
[SOA v1] Service blocks
@jessicamtai
[SOA v1] Service blocks
@jessicamtai
[SOA v1] Service blocks
@jessicamtai
Data aggregation service
Computed
Data DataData DataDataData
Logical grouping
of services
Presentation
UI logic
@jessicamtai
[SOA v2] Service blocks
Presentation
UI logic
Data aggregation service
Data DataData DataDataData
Logical grouping
of services
@jessicamtai
Computed
[SOA v2] Service blocks
DataData
Facade service
Computed
@jessicamtai
Computed
[SOA v2] Service blocks
Facade service
Unified API and schema
@jessicamtai
[SOA v2] Service blocks
Facade service
Service
Service
No internal block calls to services outside of the block
@jessicamtai
[SOA v2] Service blocks
Facade service Facade service
Presentation
UI logic
Data aggregation service
Service
Service
Service
@jessicamtai
[SOA v2] Service blocks
[SOA v2] Facade + computed data
Unified service
Computed data
platform
Facade service &
Presentation
UI logic
Data aggregation service
@jessicamtai
Migration to service blocks
Facade service
DataDataData
Computed
Data aggregation serviceClient service
@jessicamtai
@jessicamtai
Users
Homes
Pricing
Initial service blocks
Core domain entities
When to migrate?
Growth, growth,
growth!
Vanja Josifovski, Airbnb Homes CTO
“
@jessicamtai
SOA V2: Read path
computedFacade +
Presentation
UI logic
Data aggregation service
Service
Service
Service
computedFacade +
DataDataDataData
@jessicamtai
Pilot results
•Data aggregation service: 35% lower latency
[v1] Presentation service calls to data services
[v2] Single GraphQL query to aggregator
•Computed data platform: 30% faster engineer velocity
[v1] Implement in own service
[v2] Add to computed data platform
@jessicamtai
Design service architecture to
enable current growth needs.
@jessicamtai
@jessicamtai
@jessicamtai
@JESSICAMTAI
SCALECONF 2020

More Related Content

PDF
PDF
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
PPTX
Soa 5 service oriented analysis and design
PDF
SOA Modeling Patterns - SOMF
PDF
Critical Success Factors Influencing SOA implementations in Healthcare
PPT
Service Analysis And Design
PDF
SOA governance
PDF
OMG: Modeling the Business
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
Soa 5 service oriented analysis and design
SOA Modeling Patterns - SOMF
Critical Success Factors Influencing SOA implementations in Healthcare
Service Analysis And Design
SOA governance
OMG: Modeling the Business

What's hot (17)

PDF
SOA Governance
PPTX
SOA Service Oriented Architecture
PDF
OIM Connector for Webservices
PPTX
SOA - Unit 1 - Introduction to SOA with Web Services
PPT
E governance and enteerprise architecture
PDF
Self Service Access Control - Help Yourself to More Productivity
PPSX
Company Profile-iONE
PDF
Integrating Enterprise Controls with the Cloud
PDF
SharePoint Development Services
PPTX
Enterprise BI & SOA
DOC
Sadiq_CV_7
PPTX
03 Service Oriented Architecture Series - Basic SOA Architecture
PDF
OIM Sizing Guide 11gR2PS1
PPTX
SOA - Unit 5 - SOA and Business Process Management
PDF
OIM11g R2PS2 Architecture
PDF
Oracle Identity & Access Management
PDF
CMAD Group Workbook 6 SOA
SOA Governance
SOA Service Oriented Architecture
OIM Connector for Webservices
SOA - Unit 1 - Introduction to SOA with Web Services
E governance and enteerprise architecture
Self Service Access Control - Help Yourself to More Productivity
Company Profile-iONE
Integrating Enterprise Controls with the Cloud
SharePoint Development Services
Enterprise BI & SOA
Sadiq_CV_7
03 Service Oriented Architecture Series - Basic SOA Architecture
OIM Sizing Guide 11gR2PS1
SOA - Unit 5 - SOA and Business Process Management
OIM11g R2PS2 Architecture
Oracle Identity & Access Management
CMAD Group Workbook 6 SOA
Ad

Similar to [ScaleConf 2020] How to Tame Your Microservices: Evolving Airbnb's Architecture (20)

PDF
[Codemotion Milan 2019] Airbnb's Great Migration - Building Services at Scale
PDF
[MicroCPH 2019] Airbnb's Great Migration: Building Services at Scale
PDF
[ApiDays Sngapore 2019] PDF - Airbnb's Great Migration: Building service APIs...
PDF
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
PDF
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
PDF
SOA and DevOps v0.1
PPTX
Soa overview
PPTX
Introduction to SOA
PPTX
E-Services course Chapter II ISI by Ettaieb Abdessattar
PDF
SOA Next Generation V1.1
DOC
Maintenance Best Practices for Service Oriented
PPTX
Service Oriented Architecture (SOA)
PPT
Soa Overview
PDF
Soa Primer
PPTX
Transition from SOA to APIs for the App Economy - Bending the Spoon
PPTX
Concept of SOA
PDF
Cloud-native Data: Every Microservice Needs a Cache
PPT
Introduction to Service Oriented Architecture
PDF
2010 Future Distributed Computing Architectures and SOA
PDF
Deploying and Testing Microservices
[Codemotion Milan 2019] Airbnb's Great Migration - Building Services at Scale
[MicroCPH 2019] Airbnb's Great Migration: Building Services at Scale
[ApiDays Sngapore 2019] PDF - Airbnb's Great Migration: Building service APIs...
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
SOA and DevOps v0.1
Soa overview
Introduction to SOA
E-Services course Chapter II ISI by Ettaieb Abdessattar
SOA Next Generation V1.1
Maintenance Best Practices for Service Oriented
Service Oriented Architecture (SOA)
Soa Overview
Soa Primer
Transition from SOA to APIs for the App Economy - Bending the Spoon
Concept of SOA
Cloud-native Data: Every Microservice Needs a Cache
Introduction to Service Oriented Architecture
2010 Future Distributed Computing Architectures and SOA
Deploying and Testing Microservices
Ad

Recently uploaded (20)

PDF
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PPTX
Current and future trends in Computer Vision.pptx
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
PPT
A5_DistSysCh1.ppt_INTRODUCTION TO DISTRIBUTED SYSTEMS
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
Information Storage and Retrieval Techniques Unit III
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
PDF
Soil Improvement Techniques Note - Rabbi
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PPTX
Fundamentals of Mechanical Engineering.pptx
PPTX
Nature of X-rays, X- Ray Equipment, Fluoroscopy
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
737-MAX_SRG.pdf student reference guides
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
Current and future trends in Computer Vision.pptx
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Categorization of Factors Affecting Classification Algorithms Selection
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
A5_DistSysCh1.ppt_INTRODUCTION TO DISTRIBUTED SYSTEMS
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Information Storage and Retrieval Techniques Unit III
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
Soil Improvement Techniques Note - Rabbi
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
Fundamentals of safety and accident prevention -final (1).pptx
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
Fundamentals of Mechanical Engineering.pptx
Nature of X-rays, X- Ray Equipment, Fluoroscopy
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
737-MAX_SRG.pdf student reference guides

[ScaleConf 2020] How to Tame Your Microservices: Evolving Airbnb's Architecture