-
-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Venn is billing system that you can deploy on your own infrastructure. This is done by a combo of three services: Venn Agent, Venn Server and Venn Control.
Here is a brief overview of those services:
Artifact | Purpose | Deployment Location | Open Source? |
---|---|---|---|
com.vennbilling.agent |
Record events, Flush events to Venn Server | Your Infrastructure | Yes |
com.vennbilling.server |
Event Persistent, Resource APIs, Invoicing, Billing Vendor Integration | Your Infrastructure | Yes |
com.vennbilling.control |
Event Registry, UI to manage your own billing, company settings, users, licenses to Venn | Your Infrastructure | Yes |
The agent is a standalone application that can be easily configured to talk to billing vendors and databases. It is also the primary ingress for billing events. Written in Clojure, it comes in two flavors: a Docker image or a standalone, pre-built JAR file.
Clojure currently supports all LTS version of Java (8,11,17,21). To stay in alignment, the artifacts we generate are as follows:
Java Version | Stand-alone JAR | Dockerfile |
---|---|---|
8 | ✅ | ❌ |
11 | ✅ | ❌ |
17 | ✅ | ❌ |
21 | ✅ | ✅ |
CI also runs against this matrix to verify LTS versions of java.
In the rare case you need to build a Docker image with a different version of Java, you can do so like this:
docker build --build-arg="JDK_VERSION=11" --build-arg="VENN_PROJECT=agent" . t agent:latest
Non-LTS versions aren't supported at ths time. If you need to use one of those versions of Java, we recommend you clone the repo and generate the uberjars yourself.
Using the Venn Agent as a library is not supported at this time.
The preferred way to run the agent is via Docker. We have three tagged versions of our image:
-
main
which refers to a snapshot of what is on themain
branch. This tag is updated on ever PR merge, so use at your own risk. -
latest
which refers to the latest release - A specific SEMVER that points an individual release
Images are currently pushed to our GitHub Docker Registry.
To run the agent via Docker, first follow the instructions on GitHub to pull the image. Remember, the main
tag points to whatever is on the main
branch which could be unstable. The recommended tags are either latest
or a specific release.
Once you pulled the image, the agent can be started via docker run
like so:
docker run agent:TAG
A standalone release jar
file is also included with every release and can be downloaded. We build the jar for all LTS versions of Java.
Once downloaded, you can run your jar like so:
java -jar agent-0.0.x.jar
SNAPSHOT
jars of main
are also provided as part of the pre-release.
Coming soon!
Coming soon!