Skip to content

Architecture

Bryan Mikaelian edited this page Mar 3, 2025 · 13 revisions

Note

Some of this architecture is inspired by Netlfix's Atlas. See: https://github.com/Netflix/atlas

Overview

Shouting out to the holy trinity from MMOs, venn has three major components. And thanks to the polylith architecture, we allows to control what bases we generate.

In production, venn generates three bases. In development, we have a single base (known as the development project.

The trinity

Ingress for all billing event data. Using SQLite as a buffer, it eventually flushes data to the server

com.vennbilling.server

Backend to process data. The server is responsible for storing billing data, exposing APIs to query that data and handle billing operations such invoicing, proration, credits, etc.

com.vennbilling.control

The control-plane service that drives the backend and APIs to power the UI through both its own database and the server. Consumes server APIs when billing data is incolved

The monolith

In development, where you need to focus on iterations and developer productivity, there is only one state: the venn monolith. It is a combination of all three services.

The Fourth Leg: The UI

As of February 2025, we haven't settled on a UI architecture yet. More on this soon!

Clone this wiki locally