Vermillion is a high performance, scalable and secure IoT middleware platform developed using Vertx. It is a middleware stack which focuses primarily on the compute layer in a smart city IoT deployment. One of the chief goals of Vermillion is to enable seamless data exchange between data producers and consumers in a smart city.
The HTTPS APIs are written using vertx. The datastore used is elasticsearch, and the authentication and authorisation mechanism is using the datasetu auth server. A detailed architecture diagram for developers is in the works.
Performance has been the key consideration while developing Vermillion. Initial results show that the middleware was able to handle at least 130,000 HTTPS requests/sec across 18 compute nodes. Computing Vermillion's performance under various conditions is still ongoing.
A detailed white paper on this project published in Arxiv can be found here. The code for this setup and tests can be found in release 0.2.0. The following is a graph depicting results from the 18-node test:
Install the following dependencies:
- docker
- docker-compose
- maven
To run tests
- python3
- behave
Package the API server into a fat jar:
cd vermillion/api-server mvn clean packageSimilarly package the authenticator
cd authenticator mvn clean packageOnce the jar files are ready
cd setup ./installTo run tests
cd tests behave
Work on API documentation, developer docs and a stable release is ongoing


