In the “iTermocil - divide and conquer your terminal like a PRO” blogpost I showed to you a way of running local JustinDB cluster (imitation). It runs sbt process under project catalog in different terminal panes. As this way was convenient in continous development I have had sometimes the feeling its simply too slow (a couple of parallely working sbt processes trying to crunch the same sources at the same time) and it would be better idea to run already having generated package.

Patience has its limits. Take it too far, and it's cowardice.
George Jackson


I’ve finally decided to employ sbt-assembly plugin. It creates a fat JAR of your project with all of its dependencies. 👊 Now simply by invoking sbt assembly command I am able to build new version of JustinDB JAR. That way I’ve got the possibility of running full standalone JustinDB instance in very fast way!

Take a look at the pictures to see how I build exemplary JustinDB JAR and then form cluster on top of it (with passed appropriate parameters). Once JAR is built I’m running 3-node cluster (right side of terminal). Exemplary command to run single node is:

java -jar -Djustin.node-id=0 -Djustin.http.port=9000 -Djustin.netty-tcp-port=2551 JustinDB-assembly-0.3.jar

note: 0.3 is the current version of JustinDB defined in build.sbt file (that come from this name).

Building: 👷 JAR is building

Built JAR is placed under target/scala-2.12 project catalog

Running: 🚴‍ On the right side you can see formed JustinDB cluster built on top of already generated JAR


You can try to download JustinDB sources from GitHub (official repository) and do it by yourself. That way you can start to play with it! 💪

Seeing all this running processes make my heart beating faster. 💖