> Section: [11. Project](https://jaque.sh/docs/project/status.md)
> Next: changelog
> Index: https://jaque.sh/llms.txt


A handful of decisions shape everything else about jaque; they are
decisions you can observe from outside the binary rather than
implementation trivia. This page names them and points at the ADR that made each one, so
a claim elsewhere on this site can be traced back to the record that
decided it.

## 1. The decisions that show from outside

```text
   - single binary, no external services: standalone mode needs nothing
     else running alongside it -- no database, no message broker, nothing
     to install beside it
   - config is CUE, not a custom DSL: typed, validated, with real
     composition instead of Nagios-style template inheritance
   - everything is event-sourced: current state is a projection over an
     append-only log, rebuildable by replay -- nothing mutates state
     directly
   - soft/hard state semantics, the same shape Nagios-class tooling has
     always used, built on top of that event-sourced core
   - legacy Nagios exec plugins are supported permanently, not as a
     migration bridge scheduled for removal
```

See [Overview](https://jaque.sh/docs/deployment/overview.md) for the single-binary story,
[Why CUE](https://jaque.sh/docs/concepts/why-cue.md) for the config decision, [Event
sourcing](../concepts/event-sourcing.md) and [State
model](../concepts/state-model.md) for the core, and [Nagios
compatibility](../nagios-compat/overview.md) for the plugin permanence
claim.

See [Status](https://jaque.sh/docs/project/status.md) for what is shipped, and
[Roadmap](https://jaque.sh/docs/project/roadmap.md) for what is ahead.

## 2. ADR index

Every decision record, in order. The records themselves are internal;
this table names each decision and its status, without saying where it lives.

| ADR | Decision | Status |
|---|---|---|
| 001 | Implementation language | Accepted |
| 002 | Event sourcing on an embedded event log, pure core | Accepted |
| 003 | CUE as native configuration language | Accepted (spike passed; see Findings) |
| 004 | Scheduler: min-heap baseline, timer wheel gated on benchmark | Accepted |
| 005 | Plugins: WASM sandbox + permanent Nagios exec compat | Accepted |
| 006 | Importers are compiler frontends, never a runtime mode | Accepted |
| 007 | Single binary, embedded dependencies | Accepted |
| 008 | Notification engine: own state machine over the event log | Accepted |
| 009 | Composable libraries, and deployment topology as a consequence | Accepted |
| 010 | Fork-per-check accepted for v1 | Accepted |
| 011 | SNMP trap reception stays out of core | Accepted |
| 012 | Labels in the core, groups only at the frontends | Accepted, amended 2026-08-10 (2, 3 and "Not decided here") |
| 013 | The command API speaks ConnectRPC; the read protocol is Livestatus | Accepted, 2026-08-10 |
| 014 | Native frontend over ConnectRPC; capabilities are stateless maps over config and the log | Accepted |
| 015 | Cluster topology: roles, pull work queue, per-object ownership over a live membership | Accepted |
| 016 | Sinks are opt-in projections; the log tiers to an archive | Accepted |
| 017 | Telemetry: one typed model, sinks as config, no in-process plugins | Accepted |
| 032 | Event handlers run off the log, in their own role | Accepted, 2026-09-13 |
| 033 | Livestatus commands inherit the FIFO's trust model | Accepted, 2026-09-13 |
