Suppose two clients write different keys that belong to the same replica group. Both requests reach the same leader. In Squirix 0.1.0-preview.10, it can send both writes to its followers in a single batch.
The preview.9 article covered leader election and fencing. Preview.10 changes how the leader handles concurrent writes.
One batch, several writes
The leader can append and replicate several ready writes together. Each request still gets its own result, and in a group of three or more nodes, the server reports success only after a majority commits the write. Your application still calls SetAsync for each write.
When a write is retried
A write can commit just before the connection drops, leaving the client without a response. When the SDK automatically retries a write, it resends the request with the original operation ID, even if it switches to another node. If the request matches and the group still has the original result, it returns that result without applying the write again.
Preview.10 improves retention of those results during the retry window. Calling the SDK again yourself creates a new operation ID. If the server reports COMMIT_OUTCOME_UNKNOWN, the SDK throws CommitOutcomeUnknownException without retrying. See the API documentation for preview.10 for the retention and clock assumptions.
Before you upgrade
Preview.10 requires .NET 10. If you mix preview.9 and preview.10 nodes, the cluster fails its readiness checks. Preview.10 also rejects older replica-group metadata and data directories activated by earlier cluster builds. For a disposable test cluster, start with empty directories. For an existing cluster, keep a backup and follow the upgrade runbook.
If you host the server in your own .NET process, import ExtensionOptions from Squirix.Server.Node.Hosting. The preview.10 release notes also cover journal and snapshot I/O, client allocations, and recovery after a forwarding connection fails.
Links
Install the standalone CLI for preview.10:
dotnet tool install --global squirix.server.tool --version 0.1.0-preview.10