0.16.0

Compatibility

Pairs withRedis Pub/Sub Broker
ProductNotiway Notify

Installation

Environment Variables

VariableRequiredDefaultDescription
Infra__Plugins__Buffer__NameYesSet to RedisStreams
Infra__Plugins__Buffer__VersionYesSet to 0.16.0
Infra__Plugins__Buffer__Config__ConnectionStringYesRedis connection string (e.g., localhost:6379)
Infra__Plugins__Buffer__Config__StreamKeyNonotiway:notificationsRedis Stream key to consume from
Infra__Plugins__Buffer__Config__ConsumerGroupNonotiway-gatewayConsumer group name for coordinated consumption

Infrastructure

  1. Running Redis instance — v5.0+ required (Streams support).
  2. The stream and consumer group are created automatically by the plugin on startup. No manual setup needed.

Docker Compose

docker-compose.yml
services:
  notiway:
    image: notiway/notify:portable-0.5.0
    ports:
      - "5000:8080"
    environment:
      - Infra__Plugins__Buffer__Name=RedisStreams
      - Infra__Plugins__Buffer__Version=0.16.0
      - Infra__Plugins__Buffer__Config__ConnectionString=redis:6379
      - Infra__Plugins__Buffer__Config__StreamKey=notiway:notifications
      - Infra__Plugins__Buffer__Config__ConsumerGroup=notiway-gateway

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

Usage

Publish notifications to the Redis Stream from your backend. The message body must be the notification JSON.

var redis = ConnectionMultiplexer.Connect("localhost:6379");
var db = redis.GetDatabase();

await db.StreamAddAsync("notiway:notifications", "data", JsonSerializer.Serialize(notification));
const Redis = require("ioredis");

const redis = new Redis();
await redis.xadd("notiway:notifications", "*", "data", JSON.stringify(notification));
import redis, json

r = redis.Redis()
r.xadd("notiway:notifications", {"data": json.dumps(notification)})