Order-book matcher

Matching engineorder-book-matcher

Generic single-threaded, deterministic price-time order matching engine.

Provider
default
Category
Compute
Properties · 5 set by this component
propertytypevaluesrequiredkind defaultthis component
algorithmenumprice-time | pro-ratanoprice-time▸ price-time
deterministicboolean—notrue▸ true
failoverenumnone | manual | automaticnonone▸ none
managedboolean—nofalseinherited
replayFromJournal · component propertyboolean—nofalseinherited
roleenumprimary | standbynoprimary▸ primary
singleThreadedboolean—notrue▸ true
Rules that apply · 2

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

stateful-engine-pinned-to-single-zone

A matching engine, coordination service or event store living in exactly one availability zone, with no failover and no replication, is lost with that zone. Everything that depends on it stops with it.

  • — all of these hold:
  • — the node sits inside exactly 1 availability-zone group
  • — any of these hold:
  • — the node's `failover` is "none"
  • — the node's `replicated` is false
  • — the node's `replication` is "none"
stateful-node-without-zone-redundancy

A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.

  • — all of these hold:
  • — the node's `stateless` is false
  • — the node sits inside exactly 1 availability-zone group
  • — this does not hold:
  • — the node sits inside at least one cell group
Use it in a design
nodes:
  - { id: "order-book-matcher", component: "order-book-matcher" }
Other Matching engine products · 2
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Generic in-house order-book matching engine: single-threaded, deterministic price-time matcher fed
# by a sequencer; replaying the journal to rebuild state is opt-in.
schemaVersion: "1"
type: "component"
id: "order-book-matcher"
kind: "matching-engine"
provider: "default"
docs: "https://en.wikipedia.org/wiki/Order_matching_system"
defaults:
  singleThreaded: true
  deterministic: true
  algorithm: "price-time"
  role: "primary"
  failover: "none"
properties:
  replayFromJournal:
    type: "boolean"
    default: false

The same page as markdown, for an agent: /catalogue/components/order-book-matcher.md