Lately, I have been thinking a lot about platforms — platforms on the internet. They form the basis of many prominent and successful internet service. When you can create a successful platform, it becomes part of the fabric of the internet. Platforms like Google, Facebook and Amazon provide, are excellent examples. If you turn one of them off today, it will have a substantial impact on the internet. Whenever Amazon’s AWS service is down, it has become a news item. That is how essential and powerful platforms can be. Any internet service which is not a platform can easily be disrupted by a newcomer. But platforms are services which will stay forever. In that context and for some other reasons, I have been looking into Amazon’s platform and their API stack recently.
When you are unfamiliar with the Amazon API stack, you will be amazed on the amount of APIs this company makes available to her users. It is truly a platform. I have read somewhere that Amazon is religious about using APIs between systems on their own network. That approach is called a Service Orientated Architecture or SOA for short. The powerful side effect of such an architecture, it is only normal to expose this ability to the outside world.
Here is a list of the powerful Amazon APIs for e-commerce:
- Product Advertising API
- Fulfillment Web Service (Amazon FWS)
- Marketplace Web Service (Amazon MWS)
It allows companies to fully integrate their own systems with Amazon’s. Products can be fed and updated, order and sales information can be downloaded, fulfillment and inventory management of stock, etc. The opportunities to use Amazon’s sales platform are almost limitless. And it does not end here. Amazon offers more APIs for their other product categories. A complete list of their other APIs can be found at http://aws.amazon.com/products/.
In 2002, Jeff Bezos send around the following within Amazon. He realized that Amazon needed to be a platform to be grow and scale. He did not use the term Service Orientated Architecture, he did not care, he just wanted to move Amazon as a company in a certain direction. He summarizes it in 6 points:
- 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 backdoors whatsoever. The only communication allowed is via service interface calls over the network.
- It doesn’t matter what technology they use. HTTP, Corba, Pub-Sub, custom protocols — doesn’t matter. Bezos doesn’t care.
- 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.
It is truly amazing, and it shows that Amazon is really a platform from the ground up. This interests me for two reasons:
- ability to fully automate feeding products on Amazon’s marketplace and leverage their worldwide audience for selling products
- options to leverage Amazon’s massive product inventory outside the realm of their own marketplace
- visionary architecture of a true platform for products — be it either selling or creating