Analytics

Purpose

The main purpose of these analytics components is to:

  1. Enable data for personalized AI/ML models to enrich the user experiences.
  2. Provide insights into content usage and support strategies for improving content roadmaps (often in conjunction with Google Analytics).

Analytics Clients

Analytics Frontend

The Analytics Frontend is responsible for handling first-party data events. It also provides features such as:

  • Event Enrichment: Initial implementation supports geo enrichment via Cloudflare headers.
  • Event Triggers: Planned future functionality to enable personalized notifications and more.

Analytics Backend

The Analytics Backend processes enriched events from the Frontend. Key responsibilities include:

  • Data Handling: Buffers events to disk and generates Parquet files (initial implementation), storing them in object storage. Future plans include forwarding data to other stores like ClickHouse.
  • Storage and Analysis: Supports reasonable long-term event storage and analysis using DuckDB.

Dashboards

Initially, we're providing up-to-date visualizations of events through Evidence dashboards (work-in-progress, to be released later or if you request them directly).

Additional Information

Both the Frontend & Backend are a single binary. When deployed, you can choose to either have a single instance or deploy such that they have specific purposes (enrichment, triggers vs storage).
Code: https://github.com/sowers-io/bosca/tree/main/workspace/core/analytics