Skip to main content
Version: Previous

Gateways and Streamers - introduction

If your application needs to integrate with external systems through a gateway, you need to be able to interpret incoming messages in the format of the external system. Equally, you need to be able to reformat information from your Genesis application when you send messages out to that system.

For this, Genesis uses Streamers, Streamer Clients and gateways.

  • A Streamer listens to a table or view, and streams data out to Streamer Clients. In almost all cases, you listen to a reliable, auditable table with unique time-stamped updates - an audit table. This ensures that, in the event of failure, the Streamer is able to go back and stream from a specific timestamp. Follow this link to learn more about Streamers.
  • A Streamer Client is at the other end of the stream. At login, it specifies which streams of data it wants to receive. When it receives data from the Streamer, it transforms the data from our model into a FIX message and passes the results to the relevant destinations. Follow this link to know more about streamer-clients
  • A gateway is a message routing service that connects to an external service. For example, a FIX gateway uses the FIX protocol to connect to exchanges or other trading hubs.

Having a separate Streamer and Streamer Client enables you to use a single Streamer to serve multiple clients that perform different activities.

For example, you could have two separate Streamer Clients listening to Streamer A:

  • Streamer Client 1 passes data to the FIX gateway
  • Streamer Client 2 passes the data to a separate external application