killer apis (all about the strangler pattern)

15
Killer APIs (All About the Strangler Pattern) DC API Meetup, 7/5/16

Upload: alison-rowland

Post on 09-Apr-2017

201 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: Killer APIs (All About the Strangler Pattern)

Killer APIs(All About the Strangler Pattern)

DC API Meetup, 7/5/16

Page 2: Killer APIs (All About the Strangler Pattern)

How do you replace legacy systems?

Page 3: Killer APIs (All About the Strangler Pattern)

When do you pull the plug?

Page 4: Killer APIs (All About the Strangler Pattern)

Maybe you don’t.

Page 5: Killer APIs (All About the Strangler Pattern)

Strangle them.

Page 6: Killer APIs (All About the Strangler Pattern)

The Strangler Vine

Page 7: Killer APIs (All About the Strangler Pattern)

Strangler Fig, final stagePhoto credit: Prashanthns - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=9567936

Page 8: Killer APIs (All About the Strangler Pattern)

StranglerApplication PatternMartin Fowler, 2004

http://www.martinfowler.com/bliki/StranglerApplication.html

Page 9: Killer APIs (All About the Strangler Pattern)

Case Study:OpenFEC

Page 10: Killer APIs (All About the Strangler Pattern)

OpenFEC: Old to New

PostgreSQL RDSGolden Gate

replicationMaterialized views

Oracle Data WarehouseNo direct accessComplex data model

Page 11: Killer APIs (All About the Strangler Pattern)

OpenFEC Architecture

Page 12: Killer APIs (All About the Strangler Pattern)

OpenFEC’s ResultsModern, free database (Postgres)In the cloud (easy backup and replication)Simplified and optimized data modelAccurate dataSpeedy performanceEasy maintainability

Page 13: Killer APIs (All About the Strangler Pattern)

Database strangulation.(Achievement unlocked!)

Page 14: Killer APIs (All About the Strangler Pattern)

Killer APIhttps://github.com/18f/openfec

Page 15: Killer APIs (All About the Strangler Pattern)

@arowlaAlison RowlandFormerly Presidential Innovation Fellow, 18F;Currently Development Lead,Commerce Data Servicehttps://github.com/arowla