> 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, and they are
decisions you can observe from outside the binary, not 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, not 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 |
