Introduction
What Open Exchange is, what it isn't, and how the pieces fit. Five minutes here saves an hour everywhere else.
What Open Exchange is
Open Exchange is the core of a trading venue, as open-source software. It takes orders, checks them against risk rules, matches buyers with sellers, keeps every balance exact, and streams live market data, and it keeps doing all of that even while one of its servers is being killed. It is licensed Apache 2.0: free to run, read, and modify.
It is deliberately infrastructure, not a turnkey exchange. It does not do KYC, hold custody of coins, or connect to banks. Those parts depend on your jurisdiction and your business, so they stay yours. The scope page draws that line precisely.
The five repositories
The stack is five repos that work as one system:
| Repo | What it does |
|---|---|
match | The matching engine. Three servers run the same deterministic engine and agree on every order using Raft consensus, so the cluster can elect a new leader after one node fails. |
oms | The order management service. It's what your apps talk to: REST and gRPC APIs, authentication, risk checks, balances, and the PostgreSQL read models. |
assets | The Assets Engine. A deterministic money ledger running as its own Raft cluster: every hold, settle, and release is a replicated state-machine transition, recorded in a replayable money journal. |
admin | The operations brain. A Go service that starts, stops, monitors, backs up, and safely upgrades everything else, refusing operations that would hurt an unhealthy cluster. |
trading-ui | A web trading and admin interface, ready to use or to fork as a starting point. |
Source revisions
The Quickstart pins a tested combination of source revisions. The OMS producer lock files identify the matching and Assets commits it expects; the shared cluster-kit is built alongside them. Source heads can advance independently after a release. Use the launcher’s revision list for that reproducible setup, and the release notes for historical milestones.
What beta means
In practice, beta means:
- The API contract is frozen. Breaking changes to REST, gRPC, or the WebSocket surface now require a major version bump and a deprecation window.
- Failure is tested, not assumed. On every commit, CI boots the full stack, kills the cluster leader mid-load, and proves every order and balance comes out exact.
- The numbers are published honestly, with the environment and the caveats: see benchmarks.
Where to go next
- Quick start: a fresh clone to a running stack on one Linux box.
- Architecture: how an order travels through the system, and what happens when a server dies.
- API reference: the frozen v1 surface your apps will call.
- Scope: what we provide and what you own. Read this before planning a production deployment.