In 2002 Jeff Bezos, the CEO and founder of Amazon, sent a memo to the the company. The contents of the memo was as follows:
- All teams will henceforth expose their data and functionality through service interfaces.
- Teams must communicate with each other through these interfaces.
- 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.
- It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter.
- 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.
- Anyone who doesn’t do this will be fired.
- Thank you; have a nice day!
One benefit of this memo was that it was unambiguous about the direction Bezos was taking the company. Bezos didn’t attempt to try to win hearts and minds or build consensus in the development ranks. Bezos streamlined the development effort because teams didn’t have to debate on what to do–Bezos had made the vision clear and the development teams just needed to implement the vision.
Another advantage of organizing a company’s communication around APIs is that it keeps Conway’s Law at bay. Remember that Conway’s Law states:
organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations
APIs make it easy to consume data and access services within an organization. No longer do you need to coordinate with other developers to be able to access the data/services you need. A clean set of APIs is a great remediation against the downside effects of Conway’s Law.
Bezos’s memo started a revolution at Amazon. At my beloved company it’s been more of an evolution–slowly but surely the organization is becoming more comfortable with developing APIs for internal use with sights on allowing the APIs to be externalized. With a development organization beyond the two pizza size and geographically diverse, APIs provide a means to improve speed, quality and joy in the development ranks.
And make no mistake about it–Bezos’s edict set the stage for Amazon to launch AWS which has turned out to be Amazon’s highest margin business.