breaking the monorail: payments & service oriented architechture

12
Breaking up the Monorail Payments & Service Oriented Architecture stella@indiegogo.com github.com/stellacotton @practicecactus

Upload: jennifer-cotton

Post on 12-Jan-2015

65 views

Category:

Technology


1 download

DESCRIPTION

Breaking the Monorail: Payments & Service Oriented Architechture

TRANSCRIPT

Page 1: Breaking the Monorail: Payments & Service Oriented Architechture

Breaking up the MonorailPayments & Service Oriented Architecture

[email protected]/stellacotton@practicecactus

Page 2: Breaking the Monorail: Payments & Service Oriented Architechture

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?

Page 3: Breaking the Monorail: Payments & Service Oriented Architechture

Where We Are Now● Legacy Payments code

Page 4: Breaking the Monorail: Payments & Service Oriented Architechture

Making a Contribution

Page 5: Breaking the Monorail: Payments & Service Oriented Architechture

...wait for it...

Page 6: Breaking the Monorail: Payments & Service Oriented Architechture

...and done (sort of)

Page 7: Breaking the Monorail: Payments & Service Oriented Architechture

● Difficult to monitor● A tightly coupled architecture slows down

innovation and growth○ No one wants to break Payments!

Where We Are Now

Page 8: Breaking the Monorail: Payments & Service Oriented Architechture

Where We Want to Be● Client request (Indiegogo.com)

def create

PaymentService.charge(@contribution)

end

Page 9: Breaking the Monorail: Payments & Service Oriented Architechture

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!", }}

Page 10: Breaking the Monorail: Payments & Service Oriented Architechture

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

Page 11: Breaking the Monorail: Payments & Service Oriented Architechture

How to Get There● Break apart the databases● Work with DevOps to separate deploy● Monitor the hell out of everything

Page 12: Breaking the Monorail: Payments & Service Oriented Architechture

Thank you!Stella [email protected]/stellacotton@practicecactus