Developer Edition: Quick Start
Introduction
In this Developer Edition Quick Start Guide, we’ll walk you through the steps to get Volt Developer Edition up and running on Docker Desktop. It comes with a built-in application, but if you want you can remove it and create one of your own.
Who is Volt Developer Edition for?
This is intended for senior developers or architects looking to address their latency, ACID, scale, total cost of ownership, and/or high availability problems. We assume you’re not a ‘software tourist’ and that you have one or more clear goals. If you don’t fall into this category, please feel free to use it, but bear in mind this is a high-end product intended to demonstrate our ability to solve complex problems, and is not a great introduction to databases or streaming.
What is Volt Developer Edition?
Our Developer Edition lets you use Docker Compose to deploy Volt, including both our streaming component ‘SP’ and the core real-time processing engine ‘AD’. You can run this deployment wherever you want, as long as you aren’t in production.
The Developer Edition allows you to easily set up a deployment consisting of:
- A one or three-node Volt AD cluster.
- A single node of Volt SP to handle incoming streams of data.
- A client node to run a test application.
It also gives you:
- A limited-duration Volt license key.
- Access to our developer Slack channel.
Note that while we give you a reference application, there’s nothing to stop you from replacing it with something you write yourself.
Prerequisites
Below are the things you need to use this, but don’t worry if you don’t have all of them. Contact us and we’ll work something out.
PREREQUISITE | DETAILS |
Docker Desktop | Available from https://app.docker.com/ We developed this with V4.37.1 |
Docker Hub Account | Available here. |
More than 500MB of free disk space 8GB or more of RAM allocated to Docker Desktop | For a three-node Volt cluster you’ll benefit from 12 GB of RAM. |
Access to GitHub | We clone a repo with the application code, and use DockerHub for the Volt Active Data and Volt Stream Processing binaries. |
Access to Maven | The ‘mvn’ executable can be obtained here if you don’t have it. |
Unused network ports | The following ports need to be free on your machine: 3000 – Grafana 8080 – Volt VMC GUI 9090 – Prometheus 21212 – Volt Client |
Set-Up Instructions
1. Start Docker Desktop and configure resource limits
We’ve tested it and know it works with 8GB of Docker-allocated RAM.
If you want to increase the amount of data we store, you first need to increase the RAM in Docker Hub.
2. Get a license (if you don’t have one already)
The developer edition is free to use, but not intended for production. To use it, you need a license, which you can get by requesting one here:
3. Set an environment variable so we can find your license
We use an environment variable so that the Developer Edition can find your Volt license.
Set it as follows. In the example below, the user jappleseed has a license. Your license file will have a unique name, and LICENSE_FILE_PATH is the path to the file, not to the directory it’s in.
LICENSE_FILE_PATH=/Users/jappleseed/license.xml
export LICENSE_FILE_PATH
3. Download the Developer Edition sample code
git clone https://github.com/VoltDB/TollCollectDemo
By doing this we are downloading the demo app and all the logic and scripts needed to pull the VoltDB and VoltSP images from docker.
4. Build the application using Maven
As part of this step, the code for VoltDB and VoltSP will be pulled from Docker Hub.
cd TollCollectDemo
mvn clean package
5. Start the application
Maven creates a deployable version of the code. The first thing we need to do is change to the right directory:
cd target/dev-edition-app-1.0-SNAPSHOT/dev-edition-app
And then start Docker:
docker compose up
6. Check the GUIs
You should see the following on your machine:
WHAT | PORT | PURPOSE |
Grafana | http://localhost:3000/ | Statistics GUI |
Prometheus | http://localhost:9090/ | Metrics Generator |
Volt Management Center | http://localhost:8080/ | Volt Server GUI |
Volt Application Port | 21212 | Use sqlcmd |
By going to locahost:3000, you should be able to see a Grafana GUI. It has dashboards for:
The Toll Collect Demo:
This demo simulates a vehicle tolling system. The GitHub repo is open, so you can see all the code yourself if you want.
For example:
- ProcessPlate is a Volt procedure that takes information about a car passing a toll sensor and performs a series of calculations to charge the vehicle owner.
- TollCollectStream defines a Volt stream sequence that generates toll entries and uses a pipeline to route them to ProcessPlate.
- The demo more or less runs itself. Out of the box there are two things you can change:
Transactions per second can be changed by updating ‘tps’ in voltsp-config.yaml, and restarting. The amount of RAM used can be changed by issuing the SQL statement in set_keepminutes.sql. You can change the value by pasting the code into the SQL window of Volt Management Center:
The VoltDB server:
And the VoltSP node:
You can also use Volt VMC on port 8080:
Clean up the application:
docker compose down --volumes
Things You Can Play With
Parameters
The demo more or less runs itself. Out of the box, there are two things you can change:
- Transactions per second can be changed by updating ‘tps’ in voltsp-config.yaml, and restarting.
- The amount of RAM used can be changed by issuing the SQL statement in set_keepminutes.sql. You can change the value by pasting the code into the SQL window of Volt Management Center:
Code
Because you got the code from GitHub, there’s nothing to stop you from changing it any way you want, as we gave you a running, non-trivial system that you can now change.