Slide 1

Slide 1 text

When not to build an SOA Lee Edwards totally not representing Groupon or SideTour @terronk

Slide 2

Slide 2 text

When to build an SOA • Huge team size or code base • Specific scaling requirements • API-driven business

Slide 3

Slide 3 text

When not to build an SOA • Literally every other time

Slide 4

Slide 4 text

SOA has real benefits •Removal of harmful dependencies •Service reuse •Independent deployability •Independent scalability •Parallelized Development! •Bragging rights

Slide 5

Slide 5 text

SOA has real drawbacks

Slide 6

Slide 6 text

Serialized development

Slide 7

Slide 7 text

Losing engineers to the pan • Architecture • logical • physical • Tooling • deploy • routing • API • Documentation

Slide 8

Slide 8 text

Logical architecture Product Page UI Widgets Inventory API Checkout Orders Redemption Merchandise Fulfillment

Slide 9

Slide 9 text

Communication structure Product Page UI Widgets Inventory API Checkout Orders Redemption Merchandise Fulfillment

Slide 10

Slide 10 text

Jeff Bezos 2002 E-mail 1. All teams will henceforth expose their data and functionality through service interfaces. 2. Teams must communicate with each other through these interfaces. 3. There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network. 4. It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter. 5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions. 6. Anyone who doesn’t do this will be fired. 7. Thank you; have a nice day!

Slide 11

Slide 11 text

Conway’s Law “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”

Slide 12

Slide 12 text

A Corollary to Conway’s Law Organizations which design systems are fated to copy the communication structure of the system

Slide 13

Slide 13 text

Communication Band-Aids • Architecture teams/committees/boards • Time spent on service documentation • Status updates with other teams • Larger meetings • Project managers

Slide 14

Slide 14 text

Do any of these seem like good ideas in any other environment?

Slide 15

Slide 15 text

Things you need to build a good SOA • Time to build tooling • A large, highly-experienced engineering team • The ability to say no to new features as you develop a robust, well-engineered platform

Slide 16

Slide 16 text

Things you don’t have as an early startup • Time to build tooling • A large, highly-experienced engineering team • The ability to say no to new features as you develop a robust, well-engineered platform

Slide 17

Slide 17 text

SOA is Batman The architecture you deserve, but
 not the one you need right now.