d8a

command module
v0.18.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2026 License: MIT Imports: 3 Imported by: 0

README

d8a logo

Divine Data (d8a)

Docs PRs Welcome

Divine Data (d8a) is an open source clickstream. It uses GA4 tracking protocol, has clean schema, can be deployed anywhere, including your cloud or on-premises.

Highlights

  • GA4 tracking protocol compatibility - Seamlessly integrates with the Google Analytics 4 tracking protocol, allowing you to implement advanced web, server-side, or mobile tracking plans in just minutes
  • Flat data model for visualization - Data is stored in a flat, analytics-ready format - perfect as a source for reporting and data warehouses, with even custom events stored in dedicated columns
  • Open source codebase - Transparent, auditable, and community-driven. Fork, contribute, or self-host as you wish
  • Works alongside GA4 - Can run in parallel with GA4 for a smooth transition or as a reliable backup
  • Full session scope support - Sessions are calculated on the backend for accuracy and flexibility - no reliance on client-side hacks
  • BigQuery & ClickHouse support - Export and analyze your data in Google BigQuery or ClickHouse for advanced analytics. Scales to billions of events with no upper limit

Core Use Cases

  • Perfect for healthcare - Collect traffic on healthcare websites under HIPAA requirements
  • Well-suited for gov - Collect traffic on gov't websites under FedRAMP requirements
  • Europe & GDPR? - Supports EU's independence from Bigtech

Screenshots & Reporting Demo

Overview Screenshot Location Screenshot Ecommerce Screenshot
Overview Location Ecommerce

You can also see the full demo here.

Running

Production setup (using docker)

See the Getting started guide.

Development setup (from source)
  1. Run it.
go run main.go server --config config.dev.yaml
  1. Make a request and wait ~10 seconds for the session to be closed.
curl "http://localhost:8080/g/collect?v=2&tid=14&dl=https%3A%2F%2Ffoo.bar&en=page_view&cid=ag9" -X POST
  1. Check the console output to verify events are being processed.

Testing

go test ./...

Documentation

See the following resources:

Join us on Discord

Connect with the team in our Discord community: link

License

MIT — see LICENSE for details.

Documentation

Overview

Package main provides the entry point for the tracker-api service

Directories

Path Synopsis
pkg
bolt
Package bolt provides BoltDB storage operations for hit tracking.
Package bolt provides BoltDB storage operations for hit tracking.
cmd
Package cmd provides command line interface for tracker-api
Package cmd provides command line interface for tracker-api
columns
Package columns provides generic column implementations for session data tracking.
Package columns provides generic column implementations for session data tracking.
nolint
columns/eventcolumns
Package eventcolumns provides column implementations for event data tracking.
Package eventcolumns provides column implementations for event data tracking.
columns/sessioncolumns
Package sessioncolumns provides column implementations for session data tracking.
Package sessioncolumns provides column implementations for session data tracking.
columnset
Package columnset provides a default columnset for the tracker API.
Package columnset provides a default columnset for the tracker API.
currency
Package currency provides a currency conversion interface and implementation.
Package currency provides a currency conversion interface and implementation.
dbip
Package dbip provides columns for the DBIP database.
Package dbip provides columns for the DBIP database.
encoding
Package encoding provides functionality for encoding and decoding data
Package encoding provides functionality for encoding and decoding data
hits
Package hits provides functionality for handling and processing tracking hits
Package hits provides functionality for handling and processing tracking hits
pings
Package pings provides utilities for creating and handling ping tasks.
Package pings provides utilities for creating and handling ping tasks.
properties
Package properties provides the core data models and types for property configuration.
Package properties provides the core data models and types for property configuration.
protocol
Package protocol defines the interface for different tracking protocol implementations.
Package protocol defines the interface for different tracking protocol implementations.
protocol/ga4
Package ga4 provides GA4 protocol specific column definitions.
Package ga4 provides GA4 protocol specific column definitions.
protocolschema
Package protocolschema provides an integration between protocol and schema packages
Package protocolschema provides an integration between protocol and schema packages
publishers
Package publishers provides implementations of various publisher strategies
Package publishers provides implementations of various publisher strategies
receiver
Package receiver implements the receiver service.
Package receiver implements the receiver service.
schema
Package schema provides the core data models and types for the tracking system.
Package schema provides the core data models and types for the tracking system.
sessions
Package sessions provides session management functionality for the tracking system.
Package sessions provides session management functionality for the tracking system.
splitter
Package splitter provides session splitting conditions.
Package splitter provides session splitting conditions.
storage
Package storage provides interfaces and implementations for key-value and set storage.
Package storage provides interfaces and implementations for key-value and set storage.
storagepublisher
Package storagepublisher provides an adapter to publish hits to a worker-backed storage.
Package storagepublisher provides an adapter to publish hits to a worker-backed storage.
util
Package util provides utility functions for type conversions and other common operations.
Package util provides utility functions for type conversions and other common operations.
warehouse
Package warehouse provides a set of interfaces and implementations for working with data warehouses.
Package warehouse provides a set of interfaces and implementations for working with data warehouses.
warehouse/bigquery
Package bigquery provides implementation of BigQuery data warehouse
Package bigquery provides implementation of BigQuery data warehouse
warehouse/clickhouse
Package clickhouse provides implementation of Clickhouse data warehouse
Package clickhouse provides implementation of Clickhouse data warehouse
warehouse/testutils
Package testutils provides test utilities for the warehouse package.
Package testutils provides test utilities for the warehouse package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL