Getting Started

This uses sbt (w/ trial support for mill, perhaps fury at some point) to build.

The core component contains all the APIs and business logic for a raft cluster in a framework-free way.

That core can then be put behind a stream (monix, fs2, akka-streams, RxScala, etc), akka actor, REST service, whatever.

It also provides scalajs support, should you fancy running your server code in a browser, which can be a nifty way to more easily test multiple components in a cluster. Imagine starting/stopping a component in your micro-service suite by just opening a new browser tab!

Usage

I’ve not officially released any version of this yet. The indent is to end up with a riff-monix, riff-akka, riff-http4s, riff-vertx, etc, and so you’d bring in whichever is relevant to you … or just riff-core and add it to your own transport, etc.

The above could just be considered examples of how to factor software w/o a dependency on any particular ‘framework’.

I think in general projects should focus more on representing their business logic accurately and modeling it in a way that makes sense, and then just putting that code behind a service, queue, socket, etc.

Building

The main build still uses sbt, and so you could just:

sbt package

I’ve made a start moving to mill, but it’s not there yet.

Documentation

To generate this documentation, run

./makeSite.sh
The source code for this page can be found here.