Skip to content

Brendon-Hablutzel/argus-backend

Repository files navigation

Argus Backend

Monorepo for Argus' backend. Services are written in Scala and Bazel is used as the build tool.

Development

Run a service with Bazel using bazel run, for example api can be run as follows:

bazel run //api:api_binary

It can be run with hot reloading using ibazel, for example again with api as follows:

ibazel run //api:api_binary

Components

Kafka

Kafka can be deployed locally with docker compose (see this article for details). Use infra/docker-compose.yaml.

TimescaleDB

A Postgres extension that adds better support for handling timeseries data. See here for more details. Like Kafka, configuration for a local TimescaleDB deployment is included in infra/, and an instance can be deployed locally with infra/docker-compose.yaml

api

HTTP server that sits between clients and TimescaleDB--fetches data and exposes it on several endpoints, performing analytics and aggregation as necessary.

ingestor

HTTP server that listens for messages from the extension and sends them to Kafka.

processor

Kafka consumer--continuously polls for messages from Kafka and saves these messages in the database.

common

Contains common code, primarily data types used for communication between services.

About

Argus' backend services - self-hosted, website-level usage metrics

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published