Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Breaking the Monorail: Payments & Service Oriented Architechture
1. Breaking up the Monorail
Payments & Service Oriented Architecture
stella@indiegogo.com
github.com/stellacotton
@practicecactus
2. Breaking up the Monorail
(aka Fun with Architecture in an Agile
World)
● Where we are now
○ a Monorail
● Where we want to be
○ An app of decoupled services
● How we’re going to get there
○ Hard work and a can-do attitude?
7. Where We Are Now
● Difficult to monitor
● A tightly coupled architecture slows down
innovation and growth
○ No one wants to break Payments!
8. Where We Want to Be
● Client request (Indiegogo.com)
def create
PaymentService.charge(@contribution)
end
9. Where We Want to Be
● PaymentsService Response
{
"response": {
"timestamp": "2014-08-13T16:50:07.131-07:00",
"200": "Success" ,
}
}
or
{
"response": {
"timestamp": "2014-08-13T16:50:07.131-07:00",
"404": "WHOOPS!" ,
}
}
10. How to Get There
● Modularize current payments code
● Create internal, versioned API
● Build PaymentService gem for the main app
to integrate client side API code
● Write contract tests to keep us honest
11. How to Get There
● Break apart the databases
● Work with DevOps to separate deploy
● Monitor the hell out of everything