Breaking the Monorail: Payments & Service Oriented Architechture

Post on 12-Jan-2015

67 views 1 download

description

Breaking the Monorail: Payments & Service Oriented Architechture

Transcript of Breaking the Monorail: Payments & Service Oriented Architechture

Breaking up the MonorailPayments & Service Oriented Architecture

stella@indiegogo.comgithub.com/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 Cottonstella@indiegogo.comgithub.com/stellacotton@practicecactus