Catalogue / Compute

Matching engine

computematching-engine

Deterministic single-threaded order-book matcher.

Category
Compute
Properties
6
Components
3
Rules
2
Properties · 6 defined by this kind

A node of this kind resolves each property from its own props, then the component's defaults, then the default below.

propertytypevaluesrequireddefault
algorithmenumprice-time | pro-ratanoprice-time
deterministicboolean—notrue
failoverenumnone | manual | automaticnonone
managedboolean—nofalse
roleenumprimary | standbynoprimary
singleThreadedboolean—notrue
Rules for this kind · 2
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
Components · 3
Source
# yaml-language-server: $schema=../schema/kind.schema.json
# Abstract kind: Deterministic, single-threaded order-book matcher fed by a sequenced event stream (exchanges, marketplaces).
schemaVersion: "1"
type: "kind"
id: "matching-engine"
category: "compute"
properties:
  singleThreaded:
    type: "boolean"
    default: true
  deterministic:
    type: "boolean"
    default: true
  algorithm:
    type: "enum"
    values: ["price-time", "pro-rata"]
    default: "price-time"
  role:
    type: "enum"
    values: ["primary", "standby"]
    default: "primary"
  failover:
    type: "enum"
    values: ["none", "manual", "automatic"]
    default: "none"
  managed:
    type: "boolean"
    default: false

The same page as markdown, for an agent: /catalogue/kinds/matching-engine.md