Skip to content

Commit 7182935

Browse files
tpoxaclaude
andcommitted
revert: kv.Store back to non-durable until CRD properly migrated
In-cluster validation revealed the cluster's TinySignal CRD schema is missing the EdgeID and From fields the SDK v0.4.0+ writes. K8s API server silently strips unknown fields, leaving signals unable to be delivered correctly (no source port → no edge config evaluation → primary key errors → infinite transient retry → 1400+ signals piled up in 30 min). Reverting Port.Durable=true here so cluster operation returns to fast path immediately. Re-enabling durability is gated on: 1. make manifests regenerating CRD with EdgeID/From fields 2. Apply the updated CRD to the cluster 3. Bulk-delete the orphaned poisoned signals 4. Re-mark Durable=true and redeploy The SDK durability primitives themselves (v0.4.0/v0.4.1) are correct; this is an operations gap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b429d01 commit 7182935

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

components/kv/kv.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -366,13 +366,12 @@ func (c *Component) Ports() []module.Port {
366366
{
367367
Name: StorePort,
368368
Label: "Store",
369-
// Durable: writes are persisted as TinySignal CRDs before
370-
// dispatch. Caller's edge unblocks at "work owed", not "work
371-
// done". A pod crash mid-handle leaves the signal in the
372-
// cluster; the new leader picks it up and retries. Kv writes
373-
// are idempotent on (primaryKey, payload), so at-least-once
374-
// delivery is safe.
375-
Durable: true,
369+
// NOTE: Durable=true was attempted in v0.4.0/v0.4.1 but the
370+
// cluster CRD schema for TinySignal is missing the EdgeID
371+
// and From fields the SDK now writes (CRD wasn't regenerated
372+
// + applied). API server silently strips them, reconciler
373+
// can't reconstruct edge config, signals pile up unfixable.
374+
// Reverted to non-durable until CRD is properly migrated.
376375
Configuration: StoreRequest{
377376
Operation: OpStore,
378377
Document: settings.Document,

0 commit comments

Comments
 (0)