Orbit .NET is a set of independent NuGet packages that build on NATS .NET. Each one solves a problem the core client doesn't cover:
- Scaling consumers across instances? -> Partitioned consumer groups with auto-balancing and self-healing
- Publishing at high throughput? -> Pipelined ack publisher + atomic batch commits
- Need delayed or scheduled delivery? -> Schedule messages for future publish on JetStream
- Distributed counters without a separate store? -> Atomic inc/dec backed by JetStream streams
- KV keys with special characters? -> Base64 and path-style key codecs
- Sharing NATS CLI context with your app? -> Read
~/.config/nats/context/files intoNatsOpts - Integration testing? -> Spin up
nats-serverwith auto port assignment and JetStream
Use what you need. APIs may change until a package reaches v1.0.0.
| Package | Description | Docs | NuGet |
|---|---|---|---|
| Synadia.Orbit.Core.Extensions | Request-many with custom sentinel support | README | |
| Synadia.Orbit.Counters | Distributed counters on JetStream streams | README | |
| Synadia.Orbit.JetStream.Extensions | Direct batch retrieval and scheduled messages | README | |
| Synadia.Orbit.JetStream.Publisher | Backpressure publisher and atomic batch publishing for JetStream | README | |
| Synadia.Orbit.KeyValueStore.Extensions | Key encoding codecs for KV stores | README | |
| Synadia.Orbit.NatsContext | Connect to NATS using CLI context files | README | |
| Synadia.Orbit.PCGroups | Partitioned Consumer Groups for horizontal scaling | README | |
| Synadia.Orbit.Testing.NatsServerProcessManager | NATS server process management for testing | README |
The following packages are not part of the official NATS ecosystem. They are published exclusively in Orbit .NET to gauge interest and address NATS .NET community requests. Their APIs may change or the packages may be removed in future releases. If you're interested in any of these packages or have feedback, please open an issue and we'll consider promoting it to a fully supported package.
| Package | Description | Docs | NuGet |
|---|---|---|---|
| Synadia.Orbit.NatsCli.Plugin | NATS CLI plugin framework for AOT-compiled binaries | README | |
| Synadia.Orbit.ParameterizedSubject | Safe, parameterized NATS subject building with percent-encoding | README |
