IConfiguration vs IOptions NET
Synchronous and Asynchronous in .NET Core
Model Binding and Validation in ASP.NET Core
ControllerBase vs Controller in ASP.NET Core
ConfigureServices and Configure methods
IHostedService interface in .NET Core
ASP.NET Core request processing
| Kafka Basics | Queue Models | |
π’ Publish/Subscribe (Pub/Sub) Pattern |
The Publish/Subscribe pattern is a messaging design pattern where publishers send messages (events) without knowing who will receive them, and subscribers receive only the messages they are interested in. This decouples producers and consumers, making systems more scalable and flexible.
Hereβs a simple in-memory Pub/Sub implementation in C#:
// Publisher
public class EventPublisher
{
public delegate void MessageHandler(string message);
public event MessageHandler OnMessagePublished;
public void Publish(string message)
{
Console.WriteLine($"Publisher: {message}");
OnMessagePublished?.Invoke(message);
}
}
// Subscriber
public class EventSubscriber
{
private readonly string _name;
public EventSubscriber(string name, EventPublisher publisher)
{
_name = name;
publisher.OnMessagePublished += Receive;
}
private void Receive(string message)
{
Console.WriteLine($"{_name} received: {message}");
}
}
// Usage
public class Program
{
public static void Main()
{
var publisher = new EventPublisher();
var sub1 = new EventSubscriber("Subscriber A", publisher);
var sub2 = new EventSubscriber("Subscriber B", publisher);
publisher.Publish("Hello Subscribers!");
}
}
The Pub/Sub pattern is a powerful way to build event-driven systems. In .NET Core, it can be implemented in-memory for simple cases or with message brokers like RabbitMQ, Kafka, or Azure Service Bus for enterprise-grade distributed systems.
| Kafka Basics | Queue Models | |