The simulator is one adapter plus the tools that author its generators
Table of Contents
1. Summary
ores.marketdata.synthetic is an adapter. It implements the adapter contract and
produces ticks from generators. It also holds the tools that author the
generators: collections, folders, generator configs and preview. Trade
generation is a different thing and belongs to ores.trading.synthetic.
2. Detail
2.1. Two components, two jobs
| Component | Stands in for | Acts through |
|---|---|---|
ores.marketdata.synthetic |
The external world: vendors | The adapter contract |
ores.trading.synthetic |
Business activity: traders and counterparties | The normal trading API, like a user |
The two share authoring needs such as seeding, collections and preview. A small shared library can hold them if the duplication grows.
2.2. Inside the simulator
- Adapter part. Announce, demand, tick and heartbeat. The generator runner turns the demand set into running generators. See The synthetic runner.
- Generators. FX spot and IR curve processes, with a factory for new asset classes. See The generator factory and the kind seam and Adding an asset class.
- Authoring part. Collections, folders, configs and the preview operations. See Preview and simulate.
- Fault injection. See The simulator stops at the adapter seam.
2.3. What the simulator never does
- It does not write to the store.
- It does not know a party.
- It does not publish an oresmd URI.
- It does not make up names that mark the data as simulated. Its source names are
ordinary labels such as
bloomberg-sim.
2.4. Several simulated sources
The simulator can serve more than one provider. Each provider's simulated source is its own adapter instance and announces its own provider. One process can host many instances.
3. See also
- Market Data Architecture — the structure note that orders this cluster.
- The simulator stops at the adapter seam — completes: how far the simulator goes.
- Generators belong to the system tenant and the system party — completes: who owns what it runs.
- A live and a simulated source differ only inside the adapter — completes: the comparison with a live adapter.