dotCMS / dotCMS/core

Analytics Platform: Phase 7 — Polish & Post-MVP Improvements

Open
#35,737 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dotCMS : Analytics Epic Team : Falcon Type : New Functionality
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Description

Phase 7 continues the Analytics Platform work initiated in #35048 (Make Analytics Infrastructure Production-Ready). Phases 1–6 delivered the MVP requirements to take Analytics to production. Phase 7 captures improvements and enhancements that were intentionally deferred: deeper test coverage, CI/CD automation, performance optimizations, reliability hardening, and operational tooling.

These improvements collectively raise the quality bar for the Analytics microservice and the dotCMS core integration — making the system easier to operate, safer to scale, and more resilient under real-world load.

In-scope issues (initial set — more will be added over time):

Issue Title Area
#35051 Refactor dotCMS core analytics code Code quality
#35053 Add unit tests to analytics service Testing
#35055 Add web layer tests using MockMvc Testing
#35058 Add Gatling performance test suite for analytics microservice Testing
#35059 Set up GitHub Actions CI/CD pipeline for analytics microservice CI/CD
#35065 Create ClickHouse customer user provisioning script Operations
#35071 Add per-customer rate limiting to analytics ingestion endpoint (Bucket4j) Reliability
#35073 Add query result caching with Spring Cache + Caffeine Performance
#35654 Classify new unrecognized user agents as browsers or bots Data quality
#36084 Fix /v1/health/services endpoint to works with read only users Health check
dot-ca-event-manager#52 Run ClickHouse schema migrations on startup Operations
#36192 Restructure README and CLAUDE.md Doc

Desired Outcome

  • Analytics microservice has comprehensive test coverage: unit, web layer, integration, and performance (Gatling) tests
  • CI/CD pipeline validates every PR to the analytics microservice automatically — no broken code reaches production
  • ClickHouse schema migrations run on startup; no manual bootstrap step required for deploys
  • ClickHouse user provisioning is scripted and idempotent — operators can onboard new customers without manual SQL
  • Query results are cached; repeated identical queries do not hit ClickHouse within the TTL window
  • Ingestion endpoint enforces per-customer rate limits and returns 429 when exceeded
  • dotCMS core analytics code is clean — legacy endpoint and token-renewal job removed
  • All unrecognized user agents from the current backlog are classified as browser or bot

Target Personas

  • Developer teams
  • Content teams
  • DevOps teams
  • System administrators (dotCMS)

Links

  • Parent epic: #35048 — Make Analytics Infrastructure Production-Ready
  • Original POC: #34824

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the in-scope issues under this epic and the parent #35048, then inspect the analytics microservice and dotCMS core integration entry points named here, including /v1/health/services and the ingestion endpoint. Use the referenced unit, MockMvc, Gatling, CI/CD, ClickHouse, and README work items to define completion for a specific child issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
clickhouse, github-actions, java, spring
Domain
backend, ci-cd, databases, devops, performance, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.