Reference
Compatibility matrix
PostgreSQL versions
Three numbers that should agree do not yet. We publish all three rather than the flattering one; reconciling them is a release gate, not a copy edit.
| Surface | Majors | What that number means |
|---|---|---|
| Runtime release contract — external relay | 16 · 17 · 18 | What the release contract advertises for the default path. |
| Runtime release contract — native extension | 17 · 18 | What the release contract advertises for the optional extension. |
| Extension CI matrix | 15 · 16 · 17 · 18 | Built, installed on a real server, live-tested and packaged on every change. Read 15 and 16 as build coverage, not a support promise. |
| Compose harness | 16 | The only version the external relay has been exercised against end to end, and that was by hand. |
There is no CI PostgreSQL lane for the external relay. Its integration tests are gated behind TRELLARA_*_DATABASE_URL and the main workflow starts no Postgres service. This is named as a gap on the evidence table and it is the honest reading of the table above.
Contract versions
Each of these is a compatibility surface with its own version. A change to any of them is a breaking change.
| Contract | Version | Governs |
|---|---|---|
PROTOCOL_VERSION | 1 | The transaction envelope on the wire. An envelope with any other value is rejected on decode. |
CURRENT_CONFIG_VERSION | 2 | The flow config document. trellara config migrate upgrades a known older version and refuses an unknown future one. |
RUNTIME_CONTRACT_VERSION | 1 | Metric names, phases, readiness states and the health endpoints. |
RELEASE_CONTRACT_VERSION | 1 | Supported PostgreSQL majors, components, architectures and package formats. |
KAFKA_PRODUCTION_CONTRACT_VERSION | 1 | The eight Kafka requirements enforced before a broker is contacted. |
Capture protocol
| Setting | Supported | Default |
|---|---|---|
pgoutput protocol_version | 1 (streaming off only) · 2 | 2 |
streaming | true on protocol 2 · false on either | true |
replica identity | default (primary key) is what protocol version 1 supports | — |
Release artifacts
| Artifact | Target | Format |
|---|---|---|
trellara-check | x86_64-unknown-linux-gnu | tar.gz |
trellara (default features) | x86_64-unknown-linux-gnu | tar.gz |
trellara-full | x86_64-unknown-linux-gnu | tar.gz |
| Native extension | PostgreSQL 15 · 16 · 17 · 18 | deb · rpm |
Artifacts are published with SHA-256 checksums. They are not signed, there is no SBOM and there is no build-provenance attestation. The release contract declares amd64 and arm64 as architectures; CI builds x86_64-unknown-linux-gnu only, so arm64 is declared and not yet produced.
Managed providers
Nothing here has been run against a managed provider. RDS, Aurora, Cloud SQL, Azure Database for PostgreSQL and Neon differ in extension availability, replication grants, slot behaviour on failover and what they let you observe.
| Provider | Default path (external relay) | Native extension |
|---|---|---|
| Amazon RDS | expected to work, unverified | not available |
| Amazon Aurora | expected to work, unverified | not available |
| Google Cloud SQL | expected to work, unverified | not available |
| Azure Database for PostgreSQL | expected to work, unverified | not available |
| Neon | expected to work, unverified | not available |
The extension needs shared_preload_libraries, which no managed provider grants, so the right-hand column is a property of the providers rather than of Trellara. The left-hand column says “unverified” because it is: the read-only diagnostic uses ordinary TLS connection handling so every provider takes the same code path, which is a design choice and not evidence.
Build
| Component | Version |
|---|---|
rust-toolchain.toml | 1.97.1 |
edition | 2021 |
rdkafka | 0.37 |
| Workspace crates | 16 |
Generated from the repository at
347a884 by tools/gen_reference.py. If this page and the
code disagree, the code is right and this page is a bug.