breaking the monorail: payments & service oriented architechture
DESCRIPTION
Breaking the Monorail: Payments & Service Oriented ArchitechtureTRANSCRIPT
Breaking up the MonorailPayments & Service Oriented Architecture
[email protected]/stellacotton@practicecactus
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?
Where We Are Now● Legacy Payments code
Making a Contribution
...wait for it...
...and done (sort of)
● Difficult to monitor● A tightly coupled architecture slows down
innovation and growth○ No one wants to break Payments!
Where We Are Now
Where We Want to Be● Client request (Indiegogo.com)
def create
PaymentService.charge(@contribution)
end
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!", }}
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
How to Get There● Break apart the databases● Work with DevOps to separate deploy● Monitor the hell out of everything
Thank you!Stella [email protected]/stellacotton@practicecactus