ADR 0001: RUNE Client/Server Compatibility¶
Status¶
Accepted
Context¶
Goal: keep the current CLI UX unchanged while enabling a cloud-native API backend suitable for Kubernetes Operators and CRDs.
Decision¶
- Stable Contracts: Use request/response dataclasses as stable contracts for each operation.
- Pluggable Backends: Implement a
Backendprotocol withLocalBackend(in-process) andHttpBackend(remote). - Opt-in HTTP Mode: CLI defaults to local but can switch to HTTP via environment or flag.
- Async Job Model: Remote operations are async (submit + poll) to handle long-running provisioning.
Consequences¶
- CLI remains consistent for users.
- Server implementation can evolve independently.
- Overhead of HTTP calls is added when in
httpmode. - Requires job persistence (SQLite) on the server.