High-throughput, distributed .NET messaging system for real-time and offline processing, havely inspirited by Apache Kafka project, that was originally developed at LinkedIn.
Brod is designed to be able to keep messages persistent on disk without performance degradation, regardless of the volume of messages.
Messages are published to a topic by a producer. Each message will be send to a server acting as a broker. Some number of consumers subscribe to a topic, and each published message is delivered to all consumers.
Main Brod components are:
- Brokers - set of nodes that store published messages
- Producers - set of nodes, that produce messages
- Consumers - set of nodes, that consume messages
Brod require .NET Framework 4.0 or higher. Mono support is planned for future releases.
In order to build project, perform the following steps:
- Clone project from
https://github.com/paralect/brod.git
- Run
./Build.bat
which will output to./target
directory
In ./target
you'll find:
Brod.exe
- Brod brokerSampleProducer.exe
- Sample console project, that allows you interractively produce messages.SampleConsumer.exe
- Sample console project, that allows you to see messages, produced bySampleProducer
MassiveProducer.exe
- Sample console project, that produce 100.000 messages, 1kb each.
Your first Brod producer:
using(var producer = new Producer("localhost:5567"));
{
producer.Send("sample-topic", "Hello world!");
}
Your first Brod consumer:
using(var consumer = new Consumer("localhost:5567"))
using(var stream = consumer.OpenStream("sample-topic"))
{
foreach (var message in stream.NextString())
Console.WriteLine(message);
}