I have been asked by more than 10 people in the last couple of weeks for more information for helping them make sense of the whole event-driven API landscape. I have all kinds of links available, and various organizations, tools, and other building blocks identified, but if I haven't told any stories on a subject, I won't have more refined information to share. To help seed my research and the resulting storytelling around the event-driven landscape. Here is what I have so far to help me understand what is going on, but also hopefully help others do their own research while I am developing my own understnading.
Protocols
- HTTP - Keeping things in the realm of HTTP for developers.
- HTTP/2 - Opening up bi-directional, multi-threaded events.
- WebSockets - Leverage TCP for bi-directional pub/sub.
- TCP - Leverage other TCP based protocols for events.
Patterns
- WebHooks - Using fat or skinny payloods via HTTP push.
- REST Hooks - Defining links called when request is made.
- Pub/Sub - Adopting a publish & subscribe pattern.
Standards
- AsyncAPI - Open source tools to easily build and maintain your event-driven architecture.
- Websub (formerly PubSubHubbub) - WebSub provides a common mechanism for communication between publishers of any kind of Web content and their subscribers, based on HTTP web hooks.
- Cloudevents - A specification for describing event data in a common way
- Server-Sent Events - Server-Sent Events (SSE) is a server push technology enabling a client to receive automatic updates from a server via HTTP connection.
Performance
- One Direction - Pushing events in a single direction.
- Bi-Directional - Allow for bi-directional streams.
- Multi-Threaded - Opening up multiple threads at at time.
Key Concepts
- Event Driven
- Event Sourcing
- Command Query Responsibility Segregation (CQRS)
- Event Storming
- Domain-Driven Design
- Complex Event Processing
Top Links
- Spotify’s Event Delivery – Life in the Cloud (engineering.atspotify.com)
- Event-Driven Architecture (herbertograca.com)
- 5 Protocols For Event-Driven API Architectures (nordicapis.com)
- Replicating the Success of REST in Event-Driven Architecture (asyncapi.com)
- SOA vs. EDA: Is Not Life Simply a Series of Events? (confluent.io)
- Breaking down the hype: Promises and Pitfalls of Event Driven Architecture (zocdoc.com)
- Event Modeling (eventmodeling.org)
- Event Storming (eventstorming.com)
- Journey to Event Driven – Part 1: Why Event-First Thinking Changes Everything (confluent.io)
- What is WebSub? Common Cases and Implementations (nordicapis.com)
- Add Webhooks to Your API the Right Way (zapier.com)
- Webhooks do’s and dont’s: what we learned after integrating +100 APIs (restful.io)
- Webhooks — The Definitive Guide [2019]
- Event-Driven Architectures (asyncapi.com)
- Event Streaming an Additional Architectural Style to Supplement API Design (Launchany)
- Choosing Between REST Web APIs and Message Streaming (Launchany)
Additional
- Fran from AsysncAPI is standing by via Slack Channel to answer questions.
These are some of the key building blocks of the event-driven conversation. Having the keywords avaialble in my research notebook helps me Google and discover other new information. It gives me the vocabulary to assist me when I am manually researching things, but also provide what I need to automate and scale my harvesting of interesting stories, tools, services, people, and other ways in which the event-driven conversation is being push in new directions.
If you have any go to sources of information for event-driven APIs please ping me on Twitter or via email and let me know. I will add it to my research, and use as part of storytelling in the future. I am far from becoming a source of relevant information on event-driven APIs, but I have been tuning in for long enough that I should be able to quickly curate what I have, and hopefully produce sosme better posts that help others navigate the landscape that is rapidly emerging.