[Superseded] Combined Kafka and account-erasure release
Superseded combined effort
The user requested two independent PRs and Paseo workspaces on November 8:
- #3233: Kafka broker migration, branch/workspace
kafka-broker-migration. - #3234: Account-erasure hardening on Redpanda, branch/workspace
account-erasure-hardening.
Both start directly from main. They currently contain scoped extraction plans; runtime extraction is still pending. Preserve this draft at ed26f38b8 as source/evidence reference. Do not merge or deploy this combined branch or execute its old cutover packet. Production remains on Redpanda. Prior cleanup and release receipts remain historical records; no new production action is authorized by this split.
Summary
Move metric-stream sensor transport to KafkaJS on Kafka protocol (v2 topics, KAFKA_BROKERS), retire Pulsar/Bookie/Node r2-archive dual paths, and keep erasure fail-closed behind the existing stock_physical_maintenance_ack until Kafka tiered-storage (R2) physical absence is operator-qualified.
Draft: do not merge or deploy until cutover gates below are green. Automatic Deploy Web remains disabled.
Intended release scope
- KafkaJS producer/consumer/quarantine + drain; domain jobs use the Kafka publisher factory.
- Exact v1 topic produce refuse; legacy consume only where explicitly retained.
- Connect/R2 archive CAS retained as the JSONL archive path; dedicated R2 Kafka-TS bucket for tiered segments (stock Aiven RSM + Cloudflare R2 IaC).
- Account erasure: request-owned identifiers, consumer drain quarantine HWM (topic/partition/low/offset retained through PII scrub), PeerDB cutoff, ClickHouse/Postgres erasure, and day-29 retention verification.
- Physical gate stays operator
stock_physical_maintenance_ack(ingest_fence.completed_at ≤ verifiedCutoffAt ≤ verifiedAt ≤ now); TTL/HWM alone never satisfy TS cold-object absence.
Explicitly out of this merge
- Claiming Kafka-TS physical absence from log-start / remote metadata alone.
- Custom segment-body parsers or a new certificate framework.
- Cloud/native TS qualification labs, mutation forks, or broader runtime instrumentation until Root approves the stock physical-absence plan.
- Analytics journals/placements beyond existing PeerDB CDC.
Local evidence (Foundation)
- Unit slice (SRC): green prior KafkaJS cutover.
- Focused real Kafka/PG/CH erasure integ (2026-11-06,
--maxWorkers 1): 78/78 across kafka-consumer, clickhouse-sink, kafka-drain, clickhouse-erasure, postgres-erasure, process-account-erasure-request, account-erasure scrub (a947534cakeeps quarantine HWM after PII scrub). - Local TS disabled in that slot — no cloud/native TS qualification claim.
Merge and activation gates
- Root-reviewed Kafka-TS physical-absence/ack plan (stock RemoteLogManager retention/delete + R2 inventory/all-version cleanup under existing ack).
- Required CI/review gates including mutation; no exclusions or threshold reductions.
- Production Infisical/
KAFKA_BROKERS, TS R2 IaC, host budget, maintenance approval, whole-host soak. - Keep unmerged until cutover is ready.