An eventcloud is a distributed datastore that allows to store quadruples (RDF triples with context) and to manage events represented as quadruples. An eventcloud is based on a structured P2P overlay network combining high-performance elastic data processing infrastructure (grids, clouds), i.e. whose nodes acquisition and relinquishment can be dynamic and subject to a pay-per-use mode. Each node participating in the overlay networks will be responsible for managing the storage of subsets of the events, and will help in matching potential looked up events and disseminating them in a collaborative manner. As such, each node is also potentially an event broker responsible for managing subscriptions and routing notifications.
Functionality
- Event storage (temporary and/or permanently) through:
- Put/Get API to populate “synchronously” the store with, for example,
data from a given database - Publish/Subscribe API to allow higher scalability
- Put/Get API to populate “synchronously” the store with, for example,
- Quality of Service corresponding to Event Level Agreements
- Number of notifications delivered to subscribers per time unit
- Event delivery ordering (or at least out-of-order detection) in order to
guarantee fairness regarding a notification point of view, events should
better be delivered in a preserved order - Event delivery guarantee even in case of non-robust or malicious nodes
- Flexibility, elasticity, portability, easiness for someone to deploy and to use.
Technical Requirements
The Event Cloud requires Java 6 or higher to run. On some node deployments, specific network ports needs to be open to enable communication with external entities. The source code is publicly available from http://eventcloud.inria.fr
Components Architecture 
- Provided interfaces:
- SubscribeApi: Used to subscribe asynchronously to events from a
given stream - PublishApi: Used to push events asynchronously into a specified
stream - PutGetApi: Used to store and retrieve historical events from a given
stream - EventCloudManagementApi: Manages the event clouds (e.g. to create
a stream, to configure the elasticity of a stream, etc.) - EventCloudMonitoringApi: Manages the specified stream in nonfunctional ways such as monitoring data (hardware like the memory
consumption but also virtual like the number of subscriptions)
- SubscribeApi: Used to subscribe asynchronously to events from a
- Required interfaces:
- NotifyApi: Used to notify the subscribers about some events which a
subscription (e.g. to push matching events from a stream to the DCEP
for the subscriptions registered by the DCEP or from an Event Cloud to
the DSB for the subscriptions registered by the DSB).
- NotifyApi: Used to notify the subscribers about some events which a