Skip to content

Getting Started

Bryan Mikaelian edited this page Aug 30, 2024 · 36 revisions

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 | Our Infrastructure | No |

Venn Agent

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.

Java Versions Supported

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.

Docker with other LTS versions

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 of Java

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.

Library Support

Using the Venn Agent as a library is not supported at this time.

Installing via Docker

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 the main 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

Using the Stand-alone JAR

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.

Venn Server

Coming soon!

Clone this wiki locally