For more than a decade, web APIs have replaced the previous generation of web services. Throughout this period of growth, most APIs have been restricted to request-response over HTTP. We are now seeing a move back to eventing with the popularity of webhooks. Additionally, streaming is becoming another option for connecting services, apps, and devices. In this talk, we will look at the opportunities that event-based APIs and streaming offer and how our software architecture is evolving to handle these new styles of API interaction.
7. 7@launchany
?
Roy Fielding’s Warning
“The REST interface is designed to be
efficient for large grain hypermedia data
transfer, optimizing for the common
case of the Web, but resulting in an
interface that is not optimal for other
forms of architectural interaction.”
- Roy Fielding
- https://www.ics.uci.edu/~fielding/pubs/dissertation/software_arch.htm#sec_1_5
11. 11@launchany
Queues and Topics
Point-to-Point Messaging
via Queues
Fanout (Pub/Sub)
via Topics
Component
MessageBroker
Component
Publisher
MessageBroker
Subscriber
Subscriber
Subscriber
Component
Message B
Message A
Message A
Message B
Message A
Message A
Message A
Message A
39. 39@launchany
Capabilities and Outcomes First, API Design Next
• Track a project from start to completion
• Subdivide a project into tasks
• Mark tasks as completed
• View incomplete tasks
• View active projects
• View archived projects
• Add collaborators to a project
• POST /projects
• POST /projects/{projectId}/tasks
• POST /projects/{projectId}/tasks /{taskId}/complete
• GET /tasks?status=incomplete
• GET /projects?status=active
• GET /projects?status=archived
• POST /projects/{projectId}/members
41. 41@launchany
The Journey Toward an Enterprise API Platform
Offers API
Inventory API
Orders API
Identity API
Accounts API
Rewards API
Partners
Internal
Developers
Public App
Developers
Customers
Third-party
Approved Apps
Redeem Svc
Register Svc
Avail Offers Svc
Check Inv Svc
Ship Receive Svc
Create Order Svc
Order History Svc
Profile Svc
Permissions Svc
Friends n Fam Svc
Redemption Stream
New Acct Stream
Inv Low Stream
Order Proc Stream