Nolan is a simple messaging application. It provides fast but resiliant messaging to build stream and pub-sub messaging.
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
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
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.
Implement a simple API for consuming an producing messages.- Extensive unit testing to provide significant coverage.
- Establish benchmarks to provide context about the speed and reliabilty.
- Wiki about the interals of how Nolan works.