スキル一覧に戻る

implementing-pubsub-pattern-lite

christian289 / dotnet-with-claudecode

0🍴 0📅 2026年1月19日

Provides essential Pub-Sub patterns using Channels. Use when quickly referencing core event-driven communication techniques without detailed explanations.

SKILL.md

---
name: implementing-pubsub-pattern-lite
description: "Provides essential Pub-Sub patterns using Channels. Use when quickly referencing core event-driven communication techniques without detailed explanations."
---

# Pub-Sub Essentials

## 1. Channel Basics

```csharp
using System.Threading.Channels;

var channel = Channel.CreateUnbounded<Message>();

// Producer
await channel.Writer.WriteAsync(message);

// Consumer
await foreach (var msg in channel.Reader.ReadAllAsync(ct))
{
    await HandleMessage(msg);
}

// Completion signal
channel.Writer.Complete();
```

## 2. Bounded Channel

```csharp
// Backpressure control
var channel = Channel.CreateBounded<Message>(new BoundedChannelOptions(100)
{
    FullMode = BoundedChannelFullMode.Wait
});
```

## 3. DI Registration

```csharp
services.AddSingleton(Channel.CreateUnbounded<Message>());
services.AddSingleton(sp => sp.GetRequiredService<Channel<Message>>().Reader);
services.AddSingleton(sp => sp.GetRequiredService<Channel<Message>>().Writer);
```

## 4. Channels vs Rx.NET

| Feature | Channels | Rx.NET |
|---------|----------|--------|
| Purpose | Producer-Consumer | Event streams |
| Backpressure | Built-in | Separate implementation |
| Dependency | BCL | NuGet |

> For details: See `/dotnet-pubsub` skill