The goal of this document is to formalise the idea of an Event Marketplace as we need it in Soceda.
In an event-driven world services exchange events asynchronously. Events are output and input for services. As such, they serve as an important conduit of data and control flow. Services themselves are tradable and there is a lot of research and development being conducted to improve this. Just as services should be tradable, so should events in order to find and exchange meaningful data. To receive and to use events, their sources must be known. A marketplace, like a search engine, provides visibility to distributed sources of events.
A large scale event-based system such as Soceda will have numerous event sources which emit a high number of event streams of different event types. For a user to make sense of this, search functionality is required and a repository of metadata as a search corpus. This requirement is met by the Event Marketplace where events can be searched by type or by stream or by the event source and its metadata, etc. To make an event marketplace work, annotations/metadata must be created and collected for event types, streams and sources.
To bring together the senders and receivers of events, a marketplace is required. Its functionalities include offering and finding sources of events. These functionalities can be broken down as follows:
- Having a well-known place to advertise ones events
- Ability to describe ones events, metadata
- APIs to supply events (data integration, standards)
- Having a well-known place to look for events
- Ability to search through events or metadata
- APIs to consume events (data integration, standards)
- Event providers: Connecting events to the platform
- Platform managers: Processing events
- Customers: Connecting event consumers to the platform
- Challenge: Provider view: Common understanding between events coming from heterogeneous sources
- Challenge: Provider view: Defining the privacy of some events (or even treat them as more valuable)
- Challenge: Customer view: Supporting recommendation of subscriptions depending on real-time situations (dynamically) plus context (metadata)