SlideShare a Scribd company logo
1 of 104
Download to read offline
Airbnb’sGreatMigration:

BuildingServicesatScale
JESSICA TAI / 25 OCTOBER 2019 / CODEMOTION MILAN
@jessicamtai
2014
@jessicamtai
2015+
@jessicamtai
Hi,I’mJessica.

Ipairprogram

withmycorgi.
Why migrate? Service design tenets
Incremental

comparison
Best practices Results
Decomposition
@jessicamtai
Why migrate?
Best practices Results
Incremental

comparison
Service design tenets
Decomposition
@jessicamtai
Why migrate?
Best practices Results
Incremental

comparison
Service design tenets
Decomposition
@jessicamtai
Why migrate?
Best practices Results
Incremental

comparison
Service design tenets
Decomposition
@jessicamtai
Why migrate?
Best practices Results
Incremental

comparison
Service design tenets
Decomposition
@jessicamtai
Why migrate?
Best practices Results
Incremental

comparison
Service design tenets
Decomposition
@jessicamtai
Monorail,ourRubyonRailsmonolith
@jessicamtai
Easystartwithmonoliths
EARLY AIRBNB
Client traffic
Shared
database
Monorail
Data access query
Business logic
Presentation view
@jessicamtai
@jessicamtai
@jessicamtai
WHY DECIDE TO MIGRATE?
@jessicamtai
@jessicamtai
Moreincidents Slowerdeploytrains
@jessicamtai
Moreincidents Slowerdeploytrains
@jessicamtai
Oursolution:Service-orientedarchitecture(SOA)
NETWORK OF LOOSELY-COUPLED SERVICES
Client
API gateway
Service1
Service2
Database2Database3
Service3
@jessicamtai
CheckoutpageinSOA
Business travel service
Cancellation service
Home demand service
Pricing service
Home service
Reservation service
Messaging service
@jessicamtai
SERVICE DESIGN TENETS
@jessicamtai
Servicesownreads&writes

totheirdata @jessicamtai
Servicesaddressaspecificconcern
@jessicamtai
Avoidduplicatefunctionality
https://www.flickr.com/photos/popilop/331357312
@jessicamtai
Datamutationspropagate

viastandardevents @jessicamtai
Buildforproduction
@jessicamtai
DECOMPOSE BY

REQUEST LIFE CYCLE
@jessicamtai
Requestlifecycle
Client traffic
Shared
database
Monorail
Data access query
Business logic
Presentation view
V1: MONORAIL
@jessicamtai
Requestlifecycle
Monorail
API traffic
Routing & view
Business logic, model, data 

via services
Client traffic
V2: MONORAIL & SERVICES
@jessicamtai
MIDDLE TIER
Shared business logic
Servicetypes
STRICT FLOW OF DEPENDENCIES
PRESENTATION
Synthesize
DERIVED DATA
Shared context, multiple sources
DATA
Entity read and writes
@jessicamtai
MIDDLE TIER
Shared business logic
PRESENTATION
Synthesize
DERIVED DATA
Shared context, multiple sources
DATA
Entity read and writes
Servicetypes
STRICT FLOW OF DEPENDENCIES
@jessicamtai
MIDDLE TIER
Shared business logic
PRESENTATION
Synthesize
DERIVED DATA
Shared context, multiple sources
DATA
Entity read and writes
Servicetypes
STRICT FLOW OF DEPENDENCIES
@jessicamtai
MIDDLE TIER
Shared business logic
DERIVED DATA
Shared context, multiple sources
DATA
Entity read and writes
PRESENTATION
Synthesize
Servicetypes
STRICT FLOW OF DEPENDENCIES
@jessicamtai
PRESENTATION
Synthesize
MIDDLE TIER
Shared business logic
DERIVED DATA
Shared context, multiple sources
DATA
Entity read and writes
Servicetypes
STRICT FLOW OF DEPENDENCIES
@jessicamtai
Homes
H O S T E D B Y K I T T Y   ·   A P T O S , C A L I F O R N I A
Mushroom Dome
@jessicamtai
Homes data
service
Shared
database
Monorail
Data access query
Business logic
1.Migratingcoredatamodels
Presentation view
Homes
database
@jessicamtai
Homes data
service
Shared
database
Monorail
Data access query
Business logic
2.Migratingcorebusinesslogic
Presentation view
Homes
database
Pricing derived
data service
Pricing trends
data store
@jessicamtai
Homes data
service
Shared
database
Monorail
Data access query
Business logic
3.Migratingcoreproductviews
Presentation view
Homes
database
Pricing derived
data service
Pricing trends
data store
Checkout
presentation
service
@jessicamtai
Homes data
service
Shared
database
Monorail
Data access query
Business logic
4.Migratingcoreproductwrites
Presentation view
Homes
database
Homes
validation
middle-tier
Pricing derived
data service
Pricing trends
data store
Checkout
presentation
service
@jessicamtai
Requestlifecycle
Monorail
API traffic
Routing & view
Client traffic
V2: MONORAIL & SERVICES
@jessicamtai
Business logic, model, data 

via services
Requestlifecycle
API gateway
Middleware
Session data
service
Authentication
data service
Oauth data
service
Risk derived 

data service
...
Request

context
Presentation, logic, data
V3: SOA & API GATEWAY
Routing
@jessicamtai
Requestlifecycle
API gateway
Middleware
Session data
service
Authentication
data service
Oauth data
service
Risk derived 

data service
...
Request

context
Web rendering
service
HTML viewV3: SOA & API GATEWAY
Routing
@jessicamtai
Presentation, logic, data
Monolith
world
Services
world
TheFutureTM
@jessicamtai
Migration
world
Monolith
world
Services
world
@jessicamtai
COMPARE FOR DIFFERENCES
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Read path A
Read path BMonorail
Service
Database
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Production

traffic
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
100%
Production

traffic
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
100%
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Monorail
Service
Database
Response A
Response B
Consumer + 

offline
comparison
framework
@jessicamtai
Dualreadcomparison
WaitRamp&waitCompareGate
Admin web UI
configuration
1% traffic Gradual
increments
Gather traffic
patterns
All traffic through
service only
Switch
Monorail
Service
Database
The only read path
@jessicamtai
Writecomparison
SHADOW DATA SERVICES
Presentation service
Write validation
middle tier service
Write path A
Write path B
Data service
(production)
Data service
(shadow)
Consumer + 

offline comparison
framework
Monorail
Payload A Payload B
@jessicamtai
s
Writecomparison
DUAL WRITE TO SEPARATE DATABASES
Presentation service
Write validation
middle tier service
The only write path
Data service
(shadow)
Monorail
@jessicamtai
APIgatewaycomparison
API gateway
Presentation service
Product logic
Monorail
Product logic
Original request 

(no middleware applied)
Shadow request 

with context
Add request context
@jessicamtai
Middleware
@jessicamtai
Shadow

request copy
APIgatewaycomparison
API gateway
Presentation service
Product logic
Request 

with context
Middleware
@jessicamtai
Incrementalmigration
@jessicamtai
! Production traffic with partially complete service
○ e.g. batch API /loadUsers
○ Fetch users only by user id
! Unblock clients
Migratebyendpoint
@jessicamtai
Migratebyattribute
Service Monorail
Database
Read migrated

attributes
Read not-yet-migrated 

attributes
Database
Presentation service
Production traffic
@jessicamtai
SOA BEST PRACTICES
@jessicamtai
Frameworks
Auto-generate code
Testing&deploying
Replay production traffic
Observability
Standard templates
Standardizeservicebuilding
SCALE WITH CONSISTENCY
@jessicamtai
Service
Service&clientsetup
Business logic
@jessicamtai
Service
Service&clientsetup
Business logic
Endpoint logic
Server
transport
@jessicamtai
Service
Service&clientsetup
Business logic
Endpoint logic
Server
transport
Java client
Ruby client
Client
transport
Client
transport
@jessicamtai
Service
Service&clientsetup
Business logic
Server metrics
Server
diagnostics
Startup /
teardown
Endpoint logic
Metrics
Data
validation
Server
transport
Server
resilience
Java client
Ruby client
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Type
checking
@jessicamtai
Service
Endpoint logic
Service&clientsetup
Business logic
Server metrics
Server
diagnostics
Startup /
teardown
Dashboard
Dashboard
Alert
Alert
Alert
Runbook
documentation
Metrics
Data
validation
Server
transport
Server
resilience
Java client
Ruby client
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Type
checking
@jessicamtai
Service
Endpoint logic
Service&clientsetup
Business logic
Server metrics
Server
diagnostics
Startup /
teardown
Dashboard
Dashboard
Alert
Alert
Alert
Runbook
documentation
Metrics
Data
validation
Server
transport
Server
resilience
Java client
Ruby client
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Type
checking
@jessicamtai
FrameworksusingThriftIDL
@jessicamtai
IDL
Service
Endpoint logic
Business logic
Server metrics
Server
diagnostics
Startup /
teardown
Dashboard
Dashboard
Alert
Alert
Alert
Runbook
documentation
Metrics
Data
validation
Server
transport
Server
resilience
Java client
Ruby client
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Metrics
Client
transport
Data
validation
Error
handling
Resilience
Type
checking
@jessicamtai
ThriftIDL
API FRAMEWORK
/** Batch request for demo data */
struct LoadSomeDataRequest {
1: optional set<i64> ids
/** Some extra context baz */
2: optional bool fooBar (personal_data)
}
@jessicamtai
ThriftIDL
API FRAMEWORK
/** id to data response */
struct LoadSomeDataResponse {
1: optional map<i64, SomeData> data
}
@jessicamtai
/** Batch request for demo data */
struct LoadSomeDataRequest {
1: optional set<i64> ids (personal)
/** Some extra context baz */
2: optional bool fooBar
}
/** /loadSomeData batch endpoint */

LoadSomeDataResponse loadSomeData


(1: LoadSomeDataRequest request)

throws (1: SomeException exception1)


(accept_replay = "true", rate_limit = "true")
ThriftIDL
API FRAMEWORK
@jessicamtai
Thrift annotations
@jessicamtai
Block comments 

from .thrift file
@jessicamtai
TRY TRY AGAIN SUCCESS
FAIL FAST
@jessicamtai
Separateasync
workerthreadpools
Graceful
degradation
@jessicamtai
Testing&deploying
TIMELINE
ProductionCanaryDiffyStaging
@jessicamtai
Localdev
Testing&deploying
TIMELINE
ProductionCanaryDiffyStagingLocaldev
Dev
environment
supports shared
dev services
@jessicamtai
Testing&deploying
TIMELINE
Replayed
production
traffic with
other staging
services
ProductionCanaryDiffyStagingLocaldev
@jessicamtai
Testing&deploying
TIMELINE
ProductionCanaryDiffyStagingLocaldev
Compare
responses from
staging against
production
@jessicamtai
RegressionTesting
DIFFY
Staging
(new code)
Primary 

(old code)
Secondary
(old code)
Raw response
differences
Non-

deterministic
noise
Filtered
response
differences
Diffy
Replayed traffic
github.com/twitter/diffy
@jessicamtai
Testing&deploying
TIMELINE
ProductionCanaryDiffyStagingLocaldev
Deploy to single
instance of
production
@jessicamtai
Testing&deploying
TIMELINE
ProductionCanaryDiffyStagingLocaldev
Confidently
deploy to prod
@jessicamtai
@jessicamtai
@jessicamtai
PROGRESS SO FAR?
@jessicamtai
2016: 

One small infra team
Airbnb’s SOA progress
@jessicamtai
2016: 

One small infra team
2019: 

Whole engineering org
Airbnb’s SOA progress
@jessicamtai
IDL services in production0
450+
@jessicamtai
! Faster build & deploy times
○ Hours (Monorail) to minutes (service)
○ Fewer reverts
! Quicker bug fixes
! Increased developer productivity happiness
Promisingresults
SUCCESS
@jessicamtai
! Lower latency from parallelization
○ Ruby monorail single-threaded
○ Java services multi-threaded
! Search results page 3x faster
! Homes description page 10x faster!
Latencyresults
SUCCESS
@jessicamtai
500+ 67%
Deploys in MonorailEngineers
2016
@jessicamtai
500+ 67%
Deploys in MonorailEngineers
2000+ 3%
2016
2019
@jessicamtai
Production traffic via API Gateway
75%
@jessicamtai
CheckoutpagerequiredmessageinSOA Checkout presentation
Home data
Reservation data
Review data
Pricing
derived data
Home demand
derived data
Cancellation
derived data
Business travel
derived data
Messaging data
@jessicamtai
SOAhasitschallenges
CAUTION
@jessicamtai
Distributedservices
CAUTION
@jessicamtai
Multiple,isolateddatabases
CAUTION
@jessicamtai
Complexserviceorchestration
CAUTION
@jessicamtai
! Prepare for a long commitment
! Define service building principles
! Decompose incrementally
! Scale with auto-generating frameworks, tools
SOAmigration
TAKEAWAYS
@jessicamtai
Lookbothways

duringyourGreatMigration
@jessicamtai
@JESSICAMTAI
CODEMOTION MILAN 2019

More Related Content

Similar to [Codemotion Milan 2019] Airbnb's Great Migration - Building Services at Scale

How to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeHow to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First Time
David Linthicum
 

Similar to [Codemotion Milan 2019] Airbnb's Great Migration - Building Services at Scale (20)

Services, Apps and the API Powered Web
Services, Apps and the API Powered WebServices, Apps and the API Powered Web
Services, Apps and the API Powered Web
 
Semantic Web Process Lifecycle: Role of Semantics in Annotation, Discovery, C...
Semantic Web Process Lifecycle: Role of Semantics in Annotation, Discovery, C...Semantic Web Process Lifecycle: Role of Semantics in Annotation, Discovery, C...
Semantic Web Process Lifecycle: Role of Semantics in Annotation, Discovery, C...
 
Applying an IBM SOA Approach to Manual Processes Automation
Applying an IBM SOA Approach to Manual Processes AutomationApplying an IBM SOA Approach to Manual Processes Automation
Applying an IBM SOA Approach to Manual Processes Automation
 
Building Event-Driven (Micro)Services with Apache Kafka
Building Event-Driven (Micro)Services with Apache KafkaBuilding Event-Driven (Micro)Services with Apache Kafka
Building Event-Driven (Micro)Services with Apache Kafka
 
Semantic Web Process Lifecycle:
Semantic Web Process Lifecycle: Semantic Web Process Lifecycle:
Semantic Web Process Lifecycle:
 
Network and IT Ops Series: Build Production Solutions
Network and IT Ops Series: Build Production Solutions Network and IT Ops Series: Build Production Solutions
Network and IT Ops Series: Build Production Solutions
 
CDS + Power Apps
CDS + Power Apps CDS + Power Apps
CDS + Power Apps
 
Competitive EDGE - Data Driven Differentiation
Competitive EDGE - Data Driven DifferentiationCompetitive EDGE - Data Driven Differentiation
Competitive EDGE - Data Driven Differentiation
 
Building event-driven Microservices with Kafka Ecosystem
Building event-driven Microservices with Kafka EcosystemBuilding event-driven Microservices with Kafka Ecosystem
Building event-driven Microservices with Kafka Ecosystem
 
Jitterbit at Phillyforce
Jitterbit at PhillyforceJitterbit at Phillyforce
Jitterbit at Phillyforce
 
Data Driven API Testing: Best Practices for Real-World Testing Scenarios
Data Driven API Testing: Best Practices for Real-World Testing ScenariosData Driven API Testing: Best Practices for Real-World Testing Scenarios
Data Driven API Testing: Best Practices for Real-World Testing Scenarios
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Amtrak: Integration And SOA Gartner AADI Dec 2009
Amtrak: Integration And SOA Gartner AADI Dec 2009Amtrak: Integration And SOA Gartner AADI Dec 2009
Amtrak: Integration And SOA Gartner AADI Dec 2009
 
Biz Talk Server
Biz Talk ServerBiz Talk Server
Biz Talk Server
 
2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh
 
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Pipeline conference 2017 - Breaking down your build: architectural patterns f...Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
 
How to Streamline DataOps on AWS
How to Streamline DataOps on AWSHow to Streamline DataOps on AWS
How to Streamline DataOps on AWS
 
Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google
 
How to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeHow to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First Time
 
Future Trends in FSI
Future Trends in FSIFuture Trends in FSI
Future Trends in FSI
 

Recently uploaded

21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx
rahulmanepalli02
 
Seizure stage detection of epileptic seizure using convolutional neural networks
Seizure stage detection of epileptic seizure using convolutional neural networksSeizure stage detection of epileptic seizure using convolutional neural networks
Seizure stage detection of epileptic seizure using convolutional neural networks
IJECEIAES
 

Recently uploaded (20)

Artificial Intelligence in due diligence
Artificial Intelligence in due diligenceArtificial Intelligence in due diligence
Artificial Intelligence in due diligence
 
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas SachpazisSeismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
 
21scheme vtu syllabus of visveraya technological university
21scheme vtu syllabus of visveraya technological university21scheme vtu syllabus of visveraya technological university
21scheme vtu syllabus of visveraya technological university
 
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
 
NO1 Best Powerful Vashikaran Specialist Baba Vashikaran Specialist For Love V...
NO1 Best Powerful Vashikaran Specialist Baba Vashikaran Specialist For Love V...NO1 Best Powerful Vashikaran Specialist Baba Vashikaran Specialist For Love V...
NO1 Best Powerful Vashikaran Specialist Baba Vashikaran Specialist For Love V...
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
engineering chemistry power point presentation
engineering chemistry  power point presentationengineering chemistry  power point presentation
engineering chemistry power point presentation
 
21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx
 
UNIT-2 image enhancement.pdf Image Processing Unit 2 AKTU
UNIT-2 image enhancement.pdf Image Processing Unit 2 AKTUUNIT-2 image enhancement.pdf Image Processing Unit 2 AKTU
UNIT-2 image enhancement.pdf Image Processing Unit 2 AKTU
 
CLOUD COMPUTING SERVICES - Cloud Reference Modal
CLOUD COMPUTING SERVICES - Cloud Reference ModalCLOUD COMPUTING SERVICES - Cloud Reference Modal
CLOUD COMPUTING SERVICES - Cloud Reference Modal
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 
handbook on reinforce concrete and detailing
handbook on reinforce concrete and detailinghandbook on reinforce concrete and detailing
handbook on reinforce concrete and detailing
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptx
 
Adsorption (mass transfer operations 2) ppt
Adsorption (mass transfer operations 2) pptAdsorption (mass transfer operations 2) ppt
Adsorption (mass transfer operations 2) ppt
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
Diploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdfDiploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdf
 
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
 
Maximizing Incident Investigation Efficacy in Oil & Gas: Techniques and Tools
Maximizing Incident Investigation Efficacy in Oil & Gas: Techniques and ToolsMaximizing Incident Investigation Efficacy in Oil & Gas: Techniques and Tools
Maximizing Incident Investigation Efficacy in Oil & Gas: Techniques and Tools
 
Circuit Breakers for Engineering Students
Circuit Breakers for Engineering StudentsCircuit Breakers for Engineering Students
Circuit Breakers for Engineering Students
 
Seizure stage detection of epileptic seizure using convolutional neural networks
Seizure stage detection of epileptic seizure using convolutional neural networksSeizure stage detection of epileptic seizure using convolutional neural networks
Seizure stage detection of epileptic seizure using convolutional neural networks
 

[Codemotion Milan 2019] Airbnb's Great Migration - Building Services at Scale