Memory Sidecar v3.5.1 is the operational hardening release for the public agent-agnostic memory system. If you’ve been running any earlier 3.x version in production, this is the upgrade that closes the gap between “works” and “works reliably under load.” The focus here is on three areas: retry resilience, observability hooks, and startup integrity. No new features, no API changes—just the kind of fixes that keep distributed memory access boringly stable.
Why Hardening Matters for Agent-Agnostic Memory
The sidecar exposes a shared memory domain that any agent process can attach to, regardless of language or framework. This decoupling is powerful, but it amplifies failure modes. A single misconfigured agent can trigger cascading timeouts; a transient network hiccup can orphan sessions. v3.5.1 targets those failure patterns directly, without altering the external contract.
Key Improvements
Retry with jittered backoff. Earlier versions used a simple fixed-retry loop that could hammer the backend during partial outages. v3.5.1 introduces an exponential backoff with random jitter, configurable per operation class. This is critical when dozens of agents share the same Redis or PostgreSQL backend—synchronized retries no longer amplify load spikes.
Structured diagnostics on every failure. All internal errors now emit structured log records with fields like operation_id, agent_id, retry_count, and backend_latency_ms. You can feed these directly into your existing log aggregation pipeline without custom parsing. Debugging a stalled write that took 12 seconds becomes a single query, not a grep expedition.
Pre-flight configuration validation. The sidecar now validates its entire configuration tree at startup, including backend connection strings, timeouts, and cache sizes. If a value is out of range or a required field is missing, the process exits immediately with a clear error message—no silent fallbacks that let problems slip into production.
Connector health checks. Each supported backend (Redis, PostgreSQL, in-memory) has a lightweight health probe that runs every 30 seconds. If three consecutive probes fail, the sidecar switches to a degraded mode: it still serves reads from the local cache, but writes are queued and logged. This prevents the entire memory domain from locking up when one backend becomes flaky.
Code Example: Configuring Retry Behavior
Below is a minimal YAML fragment that demonstrates the new retry settings for write operations. This is the only new field you need to touch if you’re migrating from v3.5.0.
memory_sidecar:
backend:
type: redis
dsn: "redis://cache-cluster:6379/0"
retry:
write:
max_attempts: 5
base_delay_ms: 200
max_delay_ms: 5000
jitter_factor: 0.25
The jitter_factor of 0.25 means each delay is randomly adjusted by ±25% around the exponential schedule. For reads, the defaults are more aggressive (3 attempts, 100 ms base). You can omit the entire retry block to keep the v3.5.0 defaults, but the v3.5.1 defaults use jitter and are safe for multi-agent scenarios.
Migration Path
Drop in the new binary or container image—the on-disk state and network protocol are unchanged. The only behavioural difference that might require attention is the startup validation: if your configuration file has been silently carrying a typo or an unsupported value, the sidecar will now refuse to start. Check your deployment configuration against the updated schema before rolling out.
Why You Should Upgrade Today
If you’re running Memory Sidecar in any environment where agent count varies or backend latency isn’t guaranteed, v3.5.1 eliminates entire categories of hard-to-reproduce bugs without requiring code changes in your agents. The operational hardening is invisible to the caller but transforms the failure profile of the shared memory domain. Pull the release, update your config, and let the sidecar handle the noise.
Top comments (0)