Skip to content

Latest commit

 

History

History
34 lines (23 loc) · 1.81 KB

README.md

File metadata and controls

34 lines (23 loc) · 1.81 KB

A Raft implementation using akka-typed Gitter Build Status

For good explanation of Raft see:

Development

Requires sbt

To start an interactive server use the following line and open localhost:8080. After each source code change the server and the client will reload. (This feature is provided by sbt-revolver)

sbt ~reStart

Notice that sbt starts in the server project, to test server and client code use

sbt server/test client/test

Anatomy of the application

The folder server contains the Raft algorithm it self written with Akka-Typed and a Akka-HTTP web-server to observe the running algorithm (in package vis).

The folder client contains a web application to visualise the behaviour of Raft. The application receives updates via Server-sent events and manages updates with Diode (conceptually very similar to Redux). Instead of XML-literals ScalaTags is used, so instead of <p id="some">Text</p> you see p(id := "some", "text") everwhere.

The folder shared just contains code that is useful for the server and the web application. Right now allow messages that are transferred to the front end lives here.