bdkiran / nolan

Easy Event Streaming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nolan: Lightwieght, fast, and resiliant event streaming

nolan workflow

Nolan is a simple messaging application. It provides fast but resiliant messaging to build stream and pub-sub messaging.

Getting Started

The application is written in pure golang(for now). The makefile produces an executable in the root project libarary for easy debugging.

The application expects there to be a directory called logs in the root project directory. This is used to write the logs/indexs to. If this is your first time running the application you need to create this directory. For a production type build this directory would probably exist elsewhere but for now this assists in debugging.

mkdir logs

Useful Commands

To build the application

make build

To run a nolan broker

./nolan

To run the consumer client

./nolan -client=consumer

To run the producer client

./nolan -client=producer

To debug the commitlog, and print out all of the entries.

./nolan -debug=true

Design

Nolan utilizes a commit log to provide message resiliancy. This type of starage is used by a variety of existing products such as Kafka, Postgresql and others to provide fast and strong garuntees about message retention.

Roadmap

  1. Implement a simple API for consuming an producing messages.
  2. Extensive unit testing to provide significant coverage.
  3. Establish benchmarks to provide context about the speed and reliabilty.
  4. Wiki about the interals of how Nolan works.

About

Easy Event Streaming


Languages

Language:Go 98.1%Language:Dockerfile 1.8%Language:Makefile 0.1%