Skip to content

paralect/brod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brod

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.

Basic Concepts

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

Installation

Brod require .NET Framework 4.0 or higher. Mono support is planned for future releases.

In order to build project, perform the following steps:

  1. Clone project from https://github.com/paralect/brod.git
  2. Run ./Build.bat which will output to ./target directory

In ./target you'll find:

  • Brod.exe - Brod broker
  • SampleProducer.exe - Sample console project, that allows you interractively produce messages.
  • SampleConsumer.exe - Sample console project, that allows you to see messages, produced by SampleProducer
  • MassiveProducer.exe - Sample console project, that produce 100.000 messages, 1kb each.

Usage

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);
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published