We feel we have a pretty unique view of the API sector, that we enjoy sharing with our customers. Streamdata.io is focused on showcasing the wealth of simple, useful, web APIs that exist across many business sectors. We are looking to help map out what APIs exist, as well as helping companies, organizations, institutions, and government agencies realize their own needs for having a robust API program. After that, we spend a lot of time paying attention where the API sector is headed, connecting the dots between the significant ways in which APIs are making an impact. Most of this time has been spent tuning into the different aspects of the event driven API landscape that is unfolding around us, and working to make sense of what it all means for our customers.
Breaking Down "Event Driven"
Event driven architecture is all about focus your API efforts beyond just a request and response way of doing business--where applications only make requests to APIs, and get a response back. Possessing an event-driven approach means you don't just wait for a request, and you are actively monitoring what happens across APIs, defining the types of events that are regularly occurring, and providing infrastructure that allows API consumers to subscribe to, be notified, and tune into only the events that matter to them. While you still can poll, and keep making a request in an event-driven world, the possibilities for delivering more meaningful and efficient engagements, and cutting through the noise is making for a more logical and straightforward way of working with data, content, and algorithms that are being exposed via APIs.
Defining What is Real Time
There is no single definition
of what real time means. It will mean different things to different people, and most likely is relevant to location, time of day or week, and other variables. Real time overlaps with, and is relative to an event-driven way of doing things, because real time is often related to a specific event occurring, and a desire to know about it. Real time notifications of when a user signs up for a service, or submits a payment. In many scenarios, real time doesn't exist without there being a meaningful event. If we haven't properly documented, and tuned into what the meaningful event types that are occurring via our API platforms, real time probably won't mean much. Many people we talk to don't see themselves as being in need of "real time", when in reality they just aren't in tune with what the meaningful events that are occurring via their own platforms.
Delivering Meaningful Streams
Streaming data can be done through a variety of technical means, using websockets, HTTP/2, or as we prefer, using Server-Sent Events
(SSE). Most real time streams tend to be a one way street, requiring that be pushed out in respond to real time events, but not always in need of a return response. Also, a lot of attention is given to streams of data being large and always on, when in most situations streams can be small, precise, and ephemeral. Turning on streams when real time is truly a reality, at certain times of the day or week, as well as only pushing what has changed, and resisting streaming of everything. Streams do not always mean on, and should reflect the diverse meanings of what is real time, and the importance of having an event-driven view of the landscape, being able to efficiently, and cost effectively deliver precise streams data where and when they are needed.
It can be easy to get caught up in the hype around APIs. Where we often begin using phrases interchangeably, and without thinking too deeply about how they are actually related. Event driven, real time, and streaming get thrown around a lot, and sometimes may seem like the same thing, and other times seem like very different concepts. In reality, they overlap, and reflect how mature our platforms are, and how refined our view of the API landscape is. Not just our own internal API infrastructure we provide to others, but also the API infrastructure we consume, and put to use across our web, mobile, and device-based applications.
Connecting the dots between event-driven, real time, and streaming is more than just understanding the phrases, it is about actually connecting the dots in how we make sense of the data, content, and algorithms we are depending on each day.