Service types

Each system has a type that defines the individual services that it offers. Each such service will be one of:

  • A producer or consumer of data feeds
  • A producer or consumer of notification messages (occasional ad hoc messages sent between systems)
  • A requestor or a responder in a request/response operation
  • A producer or consumer of video streams

This simple classification scheme makes clear how services can be connected. For example, a tracking service would be a consumer of GPS location messages, and can therefore be connected (or wired) to one or more services producing GPS location messages (generated by mobile devices, people, etc.)

More formally, each individual service will have one of the following modes of operation, grouped into pairs (output-feed/input-feed, solicit-response/request-response, notification/listener) representing the source and destination of a message flow:

Mode Input/output Description
Output-feed Output The service produces a data feed, sent onto the bus.
Input-feed Input The service consumes one or more data feeds, received from the bus.
Solicit-response Output The service sends an individual request message (containing a correlation ID and a reply-to address) to one or more recipients and expects to receive corresponding response messages.
Request-response Input The service listens for individual request messages (containing a correlation ID and a reply-to address) and will reply with a corresponding response message.
Notification Output The service sends individual notification messages to one or more recipient services on the bus.
Listener Input The service listens for individual notification messages from any number of services on the bus, but will not return a response.

This is all managed by the bus, and allows service composition between compatible types.