$30 off During Our Annual Pro Sale. View Details »

Learning to Love SOA

Learning to Love SOA

A story about programming big things.

Randall Degges

September 25, 2014

More Decks by Randall Degges

Other Decks in Programming


  1. A story about programming big things. Learning to Love SOA

    @rdegges @gostormpath
  2. I’m Randall Degges Developer Evangelist at Stormpath Python / Node

    / Go Hacker
  3. None
  4. CNAM? Incoming Call: 818-217-9229 DEGGES,RANDALL

  5. The Plan OpenCNAM DEGGES,RANDALL 818-217-9229

  6. Mike: So… Wanna build it? Me: Sure… Why not?

  7. None
  8. Monolithic Architecture A single codebase that is responsible for handling

    all site functionality.
  9. Service Oriented Architecture Many codebases that each do one thing

    and one thing only.
  10. opencnam Github Repos • Public facing website. • Developer API.

    • Developer documentation. • Billing logic. • Email stuff. • Telephony interconnect. Monolithic App
  11. Load Balancer Web Server Web Server Postgres Request

  12. None
  13. None
  14. Problems :(

  15. None
  16. opencnam-www Rendering templates. Sending POST requests to my backend. Decoupling

    the Front End
  17. Load Balancer Web Server Postgres Request opencnam Load Balancer Web

    Server Request opencnam-www
  18. None
  19. Web Server Postgres

  20. opencnam-auth • Create users. • Edit users. • Delete users.

    Decoupling the Users
  21. Backend Request opencnam Backend Request opencnam-www Backend Request opencnam-auth

  22. None
  23. opencnam-api • Telephony logic. • API logs. • API cache.

    Decoupling the API
  24. Backend Request opencnam-api Backend Request opencnam-www Backend Request opencnam-auth

  25. opencnam-billing opencnam-www opencnam-auth opencnam-api OpenCNAM Services opencnam-logs opencnam-stats

  26. What I’ve Learned

  27. Small codebases are easier to work with.

  28. Small codebases are easier to scale.

  29. Small codebases are more fun.

  30. You can write less code.

  31. The hardest thing about SOA is... opencnam-auth

  32. • User account storage / encryption. • Authentication. • Authorization.

    • REST API management. • Social login. End User Your Webserver Stormpath API Stormpath
  33. You’re the best! @rdegges @gostormpath