My slides from a talk about APIs and their relationship to various network protocols, older and new ones and how that defines some of the characteristics that describe high quality implementation.
3. Me
Working on Cloudera Director
Previously founder of Axemblr.com
and Java User Group organizer
More on LinkedIn & @andreisavu
4. Goal
Share the idea: There is no silver bullet and
any implementation must ack network laws
From my experience with:
● using multiple cloud provider APIs
● using distributed systems (Zookeeper)
● writing clients & APIs (jclouds, Director)
5. A bit of context
On the role of APIs & Web Evolution
10. How we build modern applications?
As hybrids
Start: as monolithic systems that use external
APIs (identity, analytics, payments, email etc.)
Evolve: collections of services with cohesive
APIs (map to organizational boundaries)
11. What is the role of an API?
Message passing protocol for State Machines
Often seen as replacing libraries in monolithic
systems. Dangerous: doesn’t account for
network semantics (reason why RPC failed)
12. What is the role of an API?
Message passing protocol for State Machines
Better: Writing and reading messages on a
synchronous queue (producer / consumer).
Matches transport layer semantics.
29. HTTP/2: new framing layer
maintains HTTP paradigm
same URL structure (including TLS)
designed for 1:1 conversion at proxy
allows for server push
http://daniel.haxx.se/http2/
30. APIs better suited for:
● low cost batch operations
● lower latency
● compatibility with next gen CDNs
● downside: more complex clients
… but the devil is in the details.
What we can hope w/ HTTP/2?
31. Take aways
There are no silver bullets
There has to be substance behind fashion
Rewriting everything is the norm
Acknowledge transport layer restrictions
Technology as a mean-to-an-end