Analytics Platform: Phase 7 — Polish & Post-MVP Improvements
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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