One service owns market data between the vendors and the parties

Table of Contents

1. Summary

ores.marketdata is the market data service. It sits between the suppliers of market data and the parties that consume it. A supplier has sessions, a session is one configured adapter, and a feed binds a publisher to a session and a service. The service subscribes to the adapters, maps their ids to internal items, checks quality, stores the quote series, delivers ticks to the parties, and records what each party used. No party reads an adapter. No adapter knows a party.

This is how Murex and Calypso work. A market data server owns the vendor connections. The rest of the system reads the server and cannot tell which vendor, which environment or which simulator produced a value.

2. Detail

2.1. What the service owns

2.2. What sits outside the service

2.3. The components

market_data_components.png

Figure 1: The market data service with its adapters and consumers.

Source: market_data_components.puml. Regenerate with plantuml -tpng doc/knowledge/architecture/market_data_components.puml.

2.4. The rule that keeps the design honest

The service treats every source in the same way. A source has a kind, and the kind is data that a person can read. No code path in the service, in a consumer or in an adapter contract changes because the kind is simulated. See No code path may behave differently because a source is simulated.

3. See also

Emacs 29.3 (Org mode 9.6.15)