Skip to content

Make plus.disaster_recovery the only key and drop sftp - #1040

Open
epompeii wants to merge 1 commit into
develfrom
u/ep/s3-r2/disaster-recovery
Open

epompeii wants to merge 1 commit into
develfrom
u/ep/s3-r2/disaster-recovery

Conversation

@epompeii

Copy link
Copy Markdown
Member

The continuous replication section of the server config was named plus.litestream in code, with disaster_recovery accepted only as a serde alias, while the docs have always named it plus.disaster_recovery. This makes the documented key the only key, drops the unused sftp replica scheme, and fixes the docs example, which showed a replicas array the code never accepted.

Changes

  • JsonPlus.litestream becomes disaster_recovery: Option<JsonDisasterRecovery>; the alias is gone. The code that runs the Litestream binary keeps its Litestream names, since that is the vendor it drives.
  • JsonReplica::Sftp and its YAML mapping are removed, so the section reads scheme: file | s3.
  • Docs in all 9 languages drop the sftp scheme; the shared config example shows a single replica.
  • Tests pin that disaster_recovery deserializes for file and s3, that sftp is rejected, and that a leftover litestream key is ignored.

Breaking changes

  • A config that still uses plus.litestream is ignored and continuous replication does not start. Rename the key to plus.disaster_recovery.
  • The sftp replica scheme is removed. file and s3 remain.

First of a stack of three: this, then removing the on demand backup endpoint, then moving the container registry storage onto object_store with the same scheme: file | s3 config shape.

The continuous replication section was named plus.litestream in code,
with disaster_recovery only as a serde alias, while the docs named
plus.disaster_recovery. Rename the type and field to the documented key
and drop the alias. Also drop the unused sftp replica scheme, so the
section reads scheme: file | s3, and fix the docs example, which showed
a replicas array the code never accepted.
@github-actions

Copy link
Copy Markdown
Contributor

🐰 Bencher Report

ProjectBencher
Branchu/ep/s3-r2/disaster-recovery
Testbedintel-v1
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
microseconds (µs)
(Result Δ%)
Upper Boundary
microseconds (µs)
(Limit %)
Adapter::Json📈 view plot
🚷 view threshold
5.18 µs
(+7.21%)Baseline: 4.83 µs
5.84 µs
(88.70%)
Adapter::Magic (JSON)📈 view plot
🚷 view threshold
4.96 µs
(+5.94%)Baseline: 4.68 µs
5.56 µs
(89.16%)
Adapter::Magic (Rust)📈 view plot
🚷 view threshold
27.50 µs
(+4.38%)Baseline: 26.34 µs
29.62 µs
(92.83%)
Adapter::Rust📈 view plot
🚷 view threshold
4.68 µs
(+22.02%)Baseline: 3.84 µs
5.90 µs
(79.38%)
Adapter::RustBench📈 view plot
🚷 view threshold
4.66 µs
(+21.65%)Baseline: 3.83 µs
5.88 µs
(79.31%)
🐰 View full continuous benchmarking report in Bencher

@epompeii
epompeii added this pull request to stack #1042 September 18, 2026 06:48
@epompeii
epompeii marked this pull request as ready for review September 18, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant