Releases: synadia-io/orbit.net
PCGroups 1.0.0-preview.7
- Support drain-on-dispose for PCGroups consumers (#66)
JetStream.Publisher 1.0.0-preview.7
Preview release of JetStream.Publisher adding end-of-batch sentinel support to NatsJSBatchPublisher. Requires NATS Server 2.14+ for the new CloseAsync path.
- Add end-of-batch sentinel to Batch Publisher (#62)
JetStream.Publisher 1.0.0-preview.6
Adds NatsJSFastPublisher for fast-ingest batch publishing per ADR-50: high-throughput, non-atomic batch publishing with server-driven flow control. Requires nats-server v2.14+ and StreamConfig.AllowBatchPublish = true.
- Add JetStream fast-ingest batch publisher (#60)
Local benchmark
Single producer to a local nats-server v2.14 on the same host, 200,000 messages of 128 bytes, 3 iterations per backend. Stream purged between runs. Numbers will vary on different hardware, network, and stream configurations; treat as a relative comparison only.
| Backend | Min | Median | Max | vs Serial |
|---|---|---|---|---|
| Serial | 7,541 | 7,746 | 7,768 | 1.00x |
| Concurrent | 94,965 | 95,481 | 96,724 | 12.33x |
| Publisher | 136,733 | 137,082 | 139,655 | 17.70x |
| FastPublisher | 141,992 | 147,359 | 147,584 | 19.02x |
Reproducible via tools/OrbitPublish compare.
JetStream.Extensions 1.0.0-preview.5
Adds cron schedule support to NatsMsgSchedule per ADR-51 rev 7. New TimeZone init property and predefined-schedule factories (Yearly, Monthly, Weekly, Daily, Hourly) plus a Cron(expr, target) factory.
- Add cron schedule support (#58)
JetStream.Publisher 1.0.0-preview.5
Synadia.Orbit.JetStream.Publisher v1.0.0-preview.4
Synadia.Orbit.Testing.NatsServerProcessManager v1.0.0-preview.4
Synadia.Orbit.PCGroups v1.0.0-preview.6
What's new
- Multiple filters per consumer group: Static groups use
Filters(string array), elastic groups usePartitioningFiltersarray of{filter, partitioning_wildcards}pairs - Empty PartitioningFilters: Empty array defaults to
>with full-subject partitioning (requires NATS 2.12+) - Cross-language interop: JSON config in KV is now interoperable with orbit.go
pcgroups/v0.2.0and Java
Breaking changes
- Static config:
Filterreplaced byFilters(string array) - Elastic config: separate
Filter/Filters/PartitioningWildcardsreplaced byPartitioningFiltersarray - Full-subject partitioning uses empty
partitioning_wildcardsarray[]instead of[-1]sentinel - Partition filter format is
{partition}.{filter}(e.g.0.orders.*) instead of{partition}.>
Thanks to @colprog for driving the multi-filter work and pushing this forward!
Download from NuGet
Synadia.Orbit.Testing.NatsServerProcessManager v1.0.0-preview.3
Add Go interop testing runner (#43) * Add Go interop testing runner * Annotate test Go code snippets with language directive and update Go modules syntax * Refactor Go module handling and cross-targeting compatibility Enhanced Go module initialization logic, updated dependency example versions, and improved compatibility with pre-.NET Standard 2.0 targets by adding conditional directives.
Synadia.Orbit.Testing.GoHarness v1.0.0-preview.1
Add Go interop testing runner (#43) * Add Go interop testing runner * Annotate test Go code snippets with language directive and update Go modules syntax * Refactor Go module handling and cross-targeting compatibility Enhanced Go module initialization logic, updated dependency example versions, and improved compatibility with pre-.NET Standard 2.0 targets by adding conditional directives.