A story about programming big things.
A story about programming big things.Learning to Love SOA@rdegges @gostormpath
View Slide
I’m Randall DeggesDeveloper Evangelist atStormpathPython / Node / GoHacker
CNAM?Incoming Call:818-217-9229DEGGES,RANDALL
The PlanOpenCNAMDEGGES,RANDALL818-217-9229
Mike: So… Wanna build it?Me: Sure… Why not?
Monolithic ArchitectureA single codebase that isresponsible for handling allsite functionality.
Service Oriented ArchitectureMany codebases that eachdo one thing and one thingonly.
opencnamGithub Repos ● Public facing website.● Developer API.● Developer documentation.● Billing logic.● Email stuff.● Telephony interconnect.Monolithic App
Load BalancerWeb Server Web ServerPostgresRequest
Problems :(
opencnam-wwwRendering templates.Sending POST requests to mybackend.Decoupling the Front End
Load BalancerWeb ServerPostgresRequestopencnamLoad BalancerWeb ServerRequestopencnam-www
Web ServerPostgres
opencnam-auth● Create users.● Edit users.● Delete users.Decoupling the Users
BackendRequestopencnamBackendRequestopencnam-wwwBackendRequestopencnam-auth
opencnam-api● Telephony logic.● API logs.● API cache.Decoupling the API
BackendRequestopencnam-apiBackendRequestopencnam-wwwBackendRequestopencnam-auth
opencnam-billingopencnam-www opencnam-authopencnam-apiOpenCNAM Servicesopencnam-logs opencnam-stats
What I’ve Learned
Small codebases areeasier to work with.
Small codebases areeasier to scale.
Small codebases aremore fun.
You can writeless code.
The hardest thingabout SOA is...opencnam-auth
● User account storage /encryption.● Authentication.● Authorization.● REST API management.● Social login.EndUserYour WebserverStormpath APIStormpath
You’re the best!@rdegges@gostormpath