Skip to content

Commit 0ed93cc

Browse files
authored
chore(docs): record JSON-RPC over NATS binding decision (ADR 0011) (#396)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
1 parent 1e54d4f commit 0ed93cc

9 files changed

Lines changed: 300 additions & 40 deletions

docs/adr/0002-rust-crate-boundaries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Use role suffixes only when they describe a real boundary:
8080
macros.
8181
- `-derive` for a procedural macro package whose public role is derive macros.
8282
- `-server` only for a package whose public role is serving a protocol; if it is
83-
production-operated, place it according to the service rules in ADR 0001.
83+
production-operated, place it according to the service rules in [ADR 0001](./0001-workspace-runtime-taxonomy.md).
8484

8585
Avoid vague names such as `common`, `utils`, `helpers`, `core`, and `shared`.
8686
Those names usually mean the actual boundary has not been found yet. Prefer a

docs/adr/0004-protocol-and-transport-layering.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Runtime configuration decides which transports start. Cargo features may make
111111
optional adapters available at compile time, but configuration decides what runs.
112112

113113
Combining multiple transports in one binary is valid only when the binary is one
114-
operated workload, as defined in ADR 0003.
114+
operated workload, as defined in [ADR 0003](./0003-ai-protocol-transport-taxonomy.md).
115115

116116
## Package Boundary Rules
117117

@@ -177,6 +177,6 @@ currently used to reach it.
177177

178178
## References
179179

180-
- [ADR 0001: Workspace Runtime Taxonomy](/adr/0001-workspace-runtime-taxonomy)
181-
- [ADR 0002: Rust Crate Boundaries](/adr/0002-rust-crate-boundaries)
182-
- [ADR 0003: AI Protocol Transport Taxonomy](/adr/0003-ai-protocol-transport-taxonomy)
180+
- [ADR 0001: Workspace Runtime Taxonomy](./0001-workspace-runtime-taxonomy.md)
181+
- [ADR 0002: Rust Crate Boundaries](./0002-rust-crate-boundaries.md)
182+
- [ADR 0003: AI Protocol Transport Taxonomy](./0003-ai-protocol-transport-taxonomy.md)

docs/adr/0005-polyglot-workspace-layout.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ expected. Go or Python may be added later.
1515

1616
The workspace layout should feel consistent across ecosystems without erasing
1717
important language-specific conventions. In particular, Rust should keep its
18-
Cargo-specific crate rules from ADR 0002.
18+
Cargo-specific crate rules from [ADR 0002](./0002-rust-crate-boundaries.md).
1919

2020
## Decision
2121

@@ -84,7 +84,7 @@ rsworkspace/
8484
xtask/ Rust workspace automation, if a dedicated automation crate exists
8585
```
8686

87-
Rust reusable packages use `crates/`, not `packages/`. ADR 0002 remains the
87+
Rust reusable packages use `crates/`, not `packages/`. [ADR 0002](./0002-rust-crate-boundaries.md) remains the
8888
source of truth for Rust crate naming, crate granularity, feature flags,
8989
transport adapter packages, SDK names, and procedural macro packages.
9090

@@ -261,7 +261,7 @@ Use protocol/client/SDK packages instead.
261261

262262
The monorepo gets consistent concepts across languages:
263263

264-
- Rust uses `crates/` because Cargo and ADR 0002 are Rust-specific.
264+
- Rust uses `crates/` because Cargo and [ADR 0002](./0002-rust-crate-boundaries.md) are Rust-specific.
265265
- TypeScript, Go, and Python use `packages/` for reusable libraries.
266266
- `apps/`, `services/`, `cli/`, `sdks/`, and `examples/` mean the same thing in
267267
every language workspace.
@@ -271,7 +271,7 @@ The monorepo gets consistent concepts across languages:
271271

272272
## References
273273

274-
- [ADR 0001: Workspace Runtime Taxonomy](/adr/0001-workspace-runtime-taxonomy)
275-
- [ADR 0002: Rust Crate Boundaries](/adr/0002-rust-crate-boundaries)
276-
- [ADR 0003: AI Protocol Transport Taxonomy](/adr/0003-ai-protocol-transport-taxonomy)
277-
- [ADR 0004: Protocol and Transport Layering](/adr/0004-protocol-and-transport-layering)
274+
- [ADR 0001: Workspace Runtime Taxonomy](./0001-workspace-runtime-taxonomy.md)
275+
- [ADR 0002: Rust Crate Boundaries](./0002-rust-crate-boundaries.md)
276+
- [ADR 0003: AI Protocol Transport Taxonomy](./0003-ai-protocol-transport-taxonomy.md)
277+
- [ADR 0004: Protocol and Transport Layering](./0004-protocol-and-transport-layering.md)

docs/adr/0006-helpers-naming.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,4 @@ decision to justify vague package, module, file, type, or function names.
4444
## References
4545

4646
- [Straw Hat ADR 1146361044: Helper vs Util](https://straw-hat-team.github.io/adr/adrs/1146361044/README.html)
47-
- [ADR 0002: Rust Crate Boundaries](/adr/0002-rust-crate-boundaries)
47+
- [ADR 0002: Rust Crate Boundaries](./0002-rust-crate-boundaries.md)

docs/adr/0008-opentelemetry-observability.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ services, apps, CLIs, SDKs, and workspace automation. Without one default, logs,
1414
metrics, and traces can drift into vendor-specific libraries, incompatible
1515
attribute names, and uncorrelated runtime views.
1616

17-
ADR 0001 already treats OpenTelemetry service identity as part of a service
18-
boundary. ADR 0002 names shared observability setup as the responsibility of a
17+
[ADR 0001](./0001-workspace-runtime-taxonomy.md) already treats OpenTelemetry service identity as part of a service
18+
boundary. [ADR 0002](./0002-rust-crate-boundaries.md) names shared observability setup as the responsibility of a
1919
dedicated reusable package such as `trogon-telemetry`.
2020

2121
OpenTelemetry is the standard observability vocabulary that covers traces,
@@ -96,8 +96,8 @@ package, service, or deployment boundary that owns it.
9696

9797
## References
9898

99-
- [ADR 0001: Workspace Runtime Taxonomy](/adr/0001-workspace-runtime-taxonomy)
100-
- [ADR 0002: Rust Crate Boundaries](/adr/0002-rust-crate-boundaries)
99+
- [ADR 0001: Workspace Runtime Taxonomy](./0001-workspace-runtime-taxonomy.md)
100+
- [ADR 0002: Rust Crate Boundaries](./0002-rust-crate-boundaries.md)
101101
- [OpenTelemetry Signals](https://opentelemetry.io/docs/concepts/signals/)
102102
- [OpenTelemetry Logs](https://opentelemetry.io/docs/concepts/signals/logs/)
103103
- [OpenTelemetry Metrics](https://opentelemetry.io/docs/concepts/signals/metrics/)

docs/adr/0009-protocol-buffers-wire-contracts.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ date: 2026-06-08
1010
## Context
1111

1212
The repository already uses Protocol Buffers for generated protocol packages and
13-
scheduler message contracts. ADR 0003 prefers NATS-backed internal boundaries
13+
scheduler message contracts. [ADR 0003](./0003-ai-protocol-transport-taxonomy.md) prefers NATS-backed internal boundaries
1414
when both sides are first-party runtime components, and prefers ConnectRPC over
15-
direct gRPC after a first-party service API surface is necessary. ADR 0005 names
15+
direct gRPC after a first-party service API surface is necessary. [ADR 0005](./0005-polyglot-workspace-layout.md) names
1616
Protocol Buffers as the preferred cross-language contract, with NATS-backed
1717
messages for internal paths and ConnectRPC for service APIs.
1818

@@ -48,7 +48,7 @@ Use Protocol Buffers by default for:
4848

4949
NATS-backed internal messages can use the same Protocol Buffers schema governance
5050
without becoming ConnectRPC or gRPC services. Choose ConnectRPC or direct gRPC for
51-
the API surface only after ADR 0003 rules out the internal backbone as the right
51+
the API surface only after [ADR 0003](./0003-ai-protocol-transport-taxonomy.md) rules out the internal backbone as the right
5252
boundary.
5353

5454
Schemaless storage does not remove the need for a schema. When a KV store,
@@ -101,9 +101,9 @@ Valid exceptions include:
101101

102102
- MCP, ACP, JSON-RPC, webhook, or third-party API surfaces with protocol-defined
103103
JSON contracts.
104-
- Human-edited configuration files, which follow ADR 0007.
105-
- OpenAPI or REST-like HTTP contracts allowed by ADR 0003.
106-
- Logs, metrics, traces, and telemetry export paths governed by ADR 0008 or by a
104+
- Human-edited configuration files, which follow [ADR 0007](./0007-configuration-sources.md).
105+
- OpenAPI or REST-like HTTP contracts allowed by [ADR 0003](./0003-ai-protocol-transport-taxonomy.md).
106+
- Logs, metrics, traces, and telemetry export paths governed by [ADR 0008](./0008-opentelemetry-observability.md) or by a
107107
deployment system.
108108
- Plain text, Markdown, HTML, or binary file content where the payload format is
109109
the product data rather than the envelope contract.
@@ -128,7 +128,7 @@ the reason near the boundary that owns the format.
128128

129129
## References
130130

131-
- [ADR 0003: AI Protocol Transport Taxonomy](/adr/0003-ai-protocol-transport-taxonomy)
132-
- [ADR 0005: Polyglot Workspace Layout](/adr/0005-polyglot-workspace-layout)
133-
- [ADR 0007: Configuration Sources](/adr/0007-configuration-sources)
134-
- [ADR 0008: OpenTelemetry Observability](/adr/0008-opentelemetry-observability)
131+
- [ADR 0003: AI Protocol Transport Taxonomy](./0003-ai-protocol-transport-taxonomy.md)
132+
- [ADR 0005: Polyglot Workspace Layout](./0005-polyglot-workspace-layout.md)
133+
- [ADR 0007: Configuration Sources](./0007-configuration-sources.md)
134+
- [ADR 0008: OpenTelemetry Observability](./0008-opentelemetry-observability.md)

docs/adr/0010-testcontainers-for-infrastructure-tests.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ reason near the test or package boundary that owns the decision.
106106

107107
## References
108108

109-
- [ADR 0003: AI Protocol Transport Taxonomy](/adr/0003-ai-protocol-transport-taxonomy)
110-
- [ADR 0004: Protocol and Transport Layering](/adr/0004-protocol-and-transport-layering)
111-
- [ADR 0009: Protocol Buffers Wire Contracts](/adr/0009-protocol-buffers-wire-contracts)
109+
- [ADR 0003: AI Protocol Transport Taxonomy](./0003-ai-protocol-transport-taxonomy.md)
110+
- [ADR 0004: Protocol and Transport Layering](./0004-protocol-and-transport-layering.md)
111+
- [ADR 0009: Protocol Buffers Wire Contracts](./0009-protocol-buffers-wire-contracts.md)
112112
- [Testcontainers](https://testcontainers.com/)

0 commit comments

Comments
 (0)