Skip to content

Feature request title #1768

@TianMaiCheng

Description

@TianMaiCheng

Feature request type

sample request

Is your feature request related to a problem? Please describe

Hi Garnet team,

First off, thank you for your incredible work on Garnet! The performance and .NET-native design are exactly what the ecosystem needs.

I’d like to propose adding support for Redis Streams, one of Redis’ most powerful and widely used data structures. In my experience, Streams have become essential for modern backend systems, and having them in Garnet would unlock many new use cases.

Why Redis Streams matter

Redis Streams provide:

Persistent message queues with consumer groups

Exactly-once or at-least-once delivery semantics

Consumer group coordination (like Kafka, but simpler)

Time-series-friendly append-only logs

Backpressure and pending entry tracking

These features are critical for:

Event-driven architectures

Job queues / background workers

Real-time data pipelines

CQRS / event sourcing systems

Describe the solution you'd like

While Garnet already implements Strings, Hashes, Sets, Sorted Sets, etc., the lack of Streams makes certain workloads harder to migrate from Redis or design cleanly in Garnet-first systems.

Proposed scope (minimal viable support)

Ideally, Garnet would support at least the core Stream commands:

XADD, XRANGE, XREVRANGE

XREAD, XREADGROUP

XGROUP CREATE, XACK, XPENDING

Basic consumer group mechanics

Full compatibility with Redis Streams semantics would be ideal, but even partial support would be a huge win.

Why this fits Garnet

Garnet’s design goals—high throughput, low latency, and strong consistency—align perfectly with Stream workloads. Adding Streams would:

Strengthen Garnet’s positioning against Redis

Attract users building distributed systems and message-driven apps

Complement existing data structures without breaking compatibility

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions