Gen 2 repos in bold. Last Commit dates color-coded: 2026 2025 2024 ≤2023
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| celebrity | 2 | SVC | Java 21 / SB 3.5.4 | Celebrity service (current) | 2025-08-26 |
| peeq-celebrity | 1 | SVC | Java 11 / SB 2.6.8 | Celebrity service (legacy) | 2025-02-14 |
| peeq-celebrity-db | 1 | DB | Flyway/PostgreSQL | Celebrity DB migrations (18 versions) | 2024-02-23 |
| peeq-celebrity-app | 1 | SVC | TBD | Celebrity app variant | 2020-08-31 |
| athlete-manager | 2 | SVC | TBD | Athlete management service | 2025-08-05 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| fan | 2 | SVC | Java 21 / SB 3.5.4 | Fan service (current) | 2025-08-26 |
| peeq-fan | 1 | SVC | Java 11 / SB 2.6.8 | Fan service (legacy) | 2025-02-14 |
| peeq-fan-db | 1 | DB | Flyway/PostgreSQL | Fan DB migrations | 2023-07-10 |
| peeq-fan-app | 1 | SVC | TBD | Fan app variant | 2020-08-30 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| content | 2 | SVC | Java 21 / SB 3.2.6 | Content management (uploads, photo processing, Mux) | 2026-01-26 |
| peeq-content | 1 | SVC | Java 11 / SB 2.6.8 | Content service (legacy) | 2025-02-14 |
| peeq-content-db | 1 | DB | Flyway/PostgreSQL | Content DB migrations | 2024-01-17 |
| media | 2 | SVC | TBD | Media service | 2025-10-16 |
| peeq-media | 1 | SVC | TBD | Media service (legacy) | 2025-02-14 |
| peeq-media-db | 1 | DB | Flyway/PostgreSQL | Media DB migrations | 2024-08-22 |
| peeq-image-processing | 1 | SVC | TBD | Image processing | 2021-12-08 |
| aivideostudio | 2 | SVC | TBD | AI video studio | 2026-01-28 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| broadcast | 2 | SVC | TBD | Broadcast service (current) | 2024-06-25 |
| peeq-broadcast | 1 | SVC | Java 11 / SB 2.6.8 | Broadcast service (legacy) | 2025-02-14 |
| peeq-broadcast-db | 1 | DB | Flyway/PostgreSQL | Broadcast DB migrations | 2022-09-23 |
| peeq-broadcast-query | 1 | SVC | TBD | Broadcast query (CQRS read model) | 2021-01-18 |
| peeq-broadcast-bpm | 1 | BPM | Camunda | Broadcast lifecycle process | 2025-02-14 |
| peeq-celeb-broadcast | 1 | SVC | TBD | Celebrity broadcast service | 2020-11-11 |
| peeq-celeb-broadcast-bpm | 1 | BPM | Camunda | Celebrity broadcast process | 2021-01-18 |
| peeq-fan-broadcast-bpm | 1 | BPM | Camunda | Fan broadcast process | 2021-01-18 |
| peeq-handler-broadcast-bpm | 1 | BPM | Camunda | Handler broadcast process | 2021-04-06 |
| peeq-mux-livestream | 1 | SVC | TBD | Mux livestream integration | 2023-06-27 |
| peeq-mux-livestream-bpm | 1 | BPM | Camunda | Mux livestream process | 2023-04-12 |
| peeq-mux-livestream-db | 1 | DB | Flyway/PostgreSQL | Mux livestream DB | 2023-06-26 |
| mux-sync | 2 | SVC | TBD | Mux synchronization | 2025-05-02 |
| peeq-stream | 1 | SVC | TBD | Streaming service | 2025-02-14 |
| peeq-stream-db | 1 | DB | Flyway/PostgreSQL | Stream DB | 2022-09-23 |
| peeq-conference | 1 | SVC | TBD | Conference/webinar service | 2025-02-14 |
| peeq-conference-sse | 1 | SVC | TBD | Conference SSE events | 2025-02-14 |
| peeq-webinar | 1 | SVC | TBD | Webinar service | 2024-08-12 |
| webinar | 2 | SVC | TBD | Webinar service (current) | 2026-01-29 |
| peeq-jitsi-meet | 1 | SVC | TBD | Jitsi video integration | 2020-05-28 |
| peeq-shared-jitsi-library | 1 | LIB | TBD | Shared Jitsi library | 2020-08-03 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| shoutout | 2 | SVC | TBD | Shoutout service (current) | 2025-08-26 |
| peeq-shoutout | 1 | SVC | TBD | Shoutout service (legacy) | 2025-02-14 |
| peeq-shoutout-db | 1 | DB | Flyway/PostgreSQL | Shoutout DB | 2023-06-06 |
| peeq-shoutout-bpm | 1 | BPM | Camunda | Shoutout fulfillment process | 2025-02-14 |
| shoutout-bpm | 2 | BPM | TBD | Shoutout process (current) | 2025-08-26 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| stripe | 2 | SVC | TBD | Stripe integration (current) | 2026-01-12 |
| peeq-stripe | 1 | SVC | Java 11 / SB 2.6.8 | Stripe integration (legacy) | 2025-02-14 |
| peeq-stripe-db | 1 | DB | Flyway/PostgreSQL | Stripe DB | 2024-07-17 |
| peeq-dwolla | 1 | SVC | TBD | Dwolla ACH payments | 2023-01-27 |
| peeq-dwolla-db | 1 | DB | Flyway/PostgreSQL | Dwolla DB | 2022-09-22 |
| wallet | 2 | SVC | TBD | Wallet service (current) | 2025-08-26 |
| peeq-wallet | 1 | SVC | TBD | Wallet service (legacy) | 2025-02-14 |
| peeq-wallet-db | 1 | DB | Flyway/PostgreSQL | Wallet DB | 2022-09-22 |
| transaction | 2 | SVC | TBD | Transaction service (current) | 2025-08-26 |
| peeq-transaction | 1 | SVC | TBD | Transaction service (legacy) | 2025-02-14 |
| peeq-transaction-db | 1 | DB | Flyway/PostgreSQL | Transaction DB | 2022-09-23 |
| subscriptions | 2 | SVC | TBD | Subscription management (current) | 2026-01-14 |
| peeq-subscriptions | 1 | SVC | TBD | Subscription management (legacy) | 2025-02-14 |
| peeq-subscriptions-db | 1 | DB | Flyway/PostgreSQL | Subscriptions DB | 2024-03-06 |
| peeq-purchase-request-bpm | 1 | BPM | Camunda | Purchase request approval | 2025-02-14 |
| purchase-request-bpm | 2 | BPM | TBD | Purchase request (current) | 2025-12-31 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| inventory | 2 | SVC | TBD | Inventory service (current) | 2025-12-31 |
| peeq-inventory | 1 | SVC | TBD | Inventory service (legacy) | 2025-02-14 |
| peeq-inventory-db | 1 | DB | Flyway/PostgreSQL | Inventory DB | 2024-04-24 |
| onsite-event | 2 | SVC | TBD | Onsite event service (current) | 2025-08-26 |
| peeq-onsite-event | 1 | SVC | TBD | Onsite event service (legacy) | 2025-02-14 |
| peeq-onsite-event-db | 1 | DB | Flyway/PostgreSQL | Onsite event DB | 2023-08-11 |
| peeq-custom-tixr | 1 | SVC | TBD | Tixr ticketing integration | 2021-09-08 |
| peeq-custom-tixr-db | 1 | DB | Flyway/PostgreSQL | Tixr DB | 2021-09-07 |
| peeq-class-catalog | 1 | SVC | TBD | Class catalog scheduling | 2024-08-20 |
| peeq-class-catalog-db | 1 | DB | Flyway/PostgreSQL | Class catalog DB | 2024-02-22 |
| class-catalog | 2 | SVC | TBD | Class catalog (current) | 2026-01-28 |
| peeq-meet-and-greet-bpm | 1 | BPM | Camunda | Meet-and-greet scheduling | 2025-02-14 |
| peeq-meet-greet-operator | 1 | SVC | TBD | Meet-and-greet operations | 2022-09-19 |
| peeq-meetandgreet-for-iOS | 1 | FE | iOS | Meet-and-greet iOS app | 2021-03-03 |
| peeq-recording-meet-greet-keepsake-videos-bpm | 1 | BPM | Camunda | Post-event video delivery | 2025-02-14 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| messages | 2 | SVC | TBD | Messaging service (current) | 2025-12-19 |
| peeq-messages | 1 | LIB | Java | Shared message definitions | 2024-08-29 |
| peeq-message-board | 1 | SVC | TBD | Message board service | 2025-02-14 |
| peeq-message-board-db | 1 | DB | Flyway/PostgreSQL | Message board DB | 2022-09-23 |
| message-board | 2 | SVC | TBD | Message board (current) | 2025-08-26 |
| 2 | SVC | TBD | Email service (current) | 2025-12-17 | |
| peeq-email | 1 | SVC | TBD | Email service (legacy) | 2025-02-14 |
| sms | 2 | SVC | TBD | SMS service (current) | 2025-12-31 |
| peeq-sms | 1 | SVC | TBD | SMS service (legacy) | 2025-02-14 |
| notifications | 2 | SVC | TBD | Notification service (current) | 2025-12-19 |
| peeq-notification-service | 1 | SVC | TBD | Notification service (legacy) | 2025-02-14 |
| peeq-notification-service-db | 1 | DB | Flyway/PostgreSQL | Notification DB | 2023-01-10 |
| chat | 2 | SVC | TBD | Chat service (current) | 2025-08-26 |
| peeq-chat | 1 | SVC | TBD | Chat service (legacy) | 2024-08-08 |
| peeq-sse | 1 | SVC | TBD | Server-Sent Events service | 2025-02-14 |
| peeq-sse-db | 1 | DB | Flyway/PostgreSQL | SSE DB | 2022-09-23 |
| sse | 2 | SVC | TBD | SSE service (current) | 2025-08-26 |
| peeq-websocket | 1 | SVC | TBD | WebSocket service | 2022-02-19 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| org-manager | 2 | SVC | TBD | Organization management | 2025-11-21 |
| group-profile | 2 | SVC | TBD | Group profile service (current) | 2025-09-05 |
| peeq-group-profile | 1 | SVC | TBD | Group profile service (legacy) | 2025-02-14 |
| peeq-group-profile-db | 1 | DB | Flyway/PostgreSQL | Group profile DB | 2024-08-16 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| tags | 2 | SVC | TBD | Tags service (current) | 2025-08-29 |
| peeq-tags | 1 | SVC | TBD | Tags service (legacy) | 2025-02-14 |
| peeq-tags-db | 1 | DB | Flyway/PostgreSQL | Tags DB | 2022-09-23 |
| search | 2 | SVC | TBD | Search service | 2025-08-26 |
| peeq-recommendation-engine | 1 | SVC | TBD | Recommendation engine | 2021-12-09 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| peeq-encryption | 1 | SVC | TBD | Encryption service | 2020-09-24 |
| peeq-encryption-db | 1 | DB | Flyway/PostgreSQL | Encryption keys DB | 2021-09-07 |
| peeq-shared-secret | 1 | SVC | TBD | Shared secrets management | 2021-02-23 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| peeq-charity | 1 | SVC | TBD | Charity/donation features | 2021-09-08 |
| peeq-charity-db | 1 | DB | Flyway/PostgreSQL | Charity DB | 2021-09-07 |
| peeq-users | 1 | SVC | TBD | User management | 2025-02-19 |
| users | 2 | SVC | TBD | User management (current) | 2025-08-26 |
| tracking | 2 | SVC | TBD | Tracking/analytics | 2025-09-16 |
| node-tracking | 2 | SVC | TBD | Node-based tracking | 2025-04-29 |
| node-tracking-db | 2 | DB | TBD | Node tracking DB | 2025-04-28 |
| peeq-query | 1 | SVC | TBD | General query service | 2025-02-14 |
| reporting | 2 | SVC | TBD | Reporting service | 2025-08-26 |
| peeq-reporting | 1 | SVC | TBD | Reporting (legacy) | 2022-05-05 |
| journey | 2 | SVC | TBD | User journey tracking | 2025-10-16 |
| peeq-zendesk | 1 | SVC | TBD | Zendesk support integration | 2021-08-25 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| peeq-mono | 1/2 | FE | Angular 18 / Nx 19.8 / Ionic 6 | Primary frontend monorepo (web + mobile) | 2026-01-29 |
| frontends | 2 | FE | Angular 14 / Nx | Admin, celeb, org-dashboard frontends | 2026-01-29 |
| peeq-admin-fe | 1 | FE | TBD | Admin frontend (legacy standalone) | 2024-10-16 |
| peeq-celeb-fe | 1 | FE | TBD | Celebrity frontend (legacy) | 2024-10-16 |
| peeq-celeb-fe-ui | 1 | FE | TBD | Celebrity frontend UI components | 2020-08-04 |
| peeq-celeb-ui | 1 | FE | TBD | Celebrity UI variant | 2020-07-20 |
| peeq-fan-fe | 1 | FE | TBD | Fan frontend (legacy) | 2023-01-27 |
| peeq-fan-ionic | 1 | FE | Ionic | Fan mobile app | 2022-05-16 |
| peeq-handler-fe | 1 | FE | TBD | Handler/agent frontend | 2024-02-27 |
| peeq-library-fe | 1 | FE | TBD | Library/shared UI | 2024-10-16 |
| peeq-celebrity-app | 1 | FE | TBD | Celebrity native app | 2020-08-31 |
| peeq-fan-app | 1 | FE | TBD | Fan native app | 2020-08-30 |
| peeq-talent-app | 1 | FE | TBD | Talent app | 2022-07-15 |
| landing-page | 2 | FE | TBD | Marketing landing page | 2025-06-06 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| core-lib | 2 | LIB | Java | Core shared library (velocityz) | 2025-12-05 |
| peeq-shared-lib | 1 | LIB | Java | Shared library (legacy) | 2022-09-23 |
| peeq-messages | 1 | LIB | Java | Message definitions (legacy) | 2024-08-29 |
| peeq-nugets | 1 | LIB | .NET | NuGet packages | 2021-03-11 |
| peeq-logging | 1 | LIB | TBD | Logging library | 2022-03-31 |
| graphql-spqr | 2 | LIB | Java | GraphQL schema-first library | 2024-08-11 |
| graphql-spqr-spring-boot-starter | 2 | LIB | Java | GraphQL Spring Boot starter | 2024-01-07 |
| graphql-migration | 2 | LIB | TBD | GraphQL migration utilities | 2025-08-07 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| keycloak | 2 | INFRA | Keycloak | Keycloak server config | 2025-08-26 |
| peeq-keycloak | 1 | INFRA | Keycloak | Keycloak config (legacy) | 2024-07-16 |
| peeq-keycloak-archive | 1 | INFRA | Keycloak | Archived Keycloak config | 2022-10-05 |
| celeb-keycloak-theme | 2 | FE | Keycloak Theme | Celebrity login theme | 2025-11-24 |
| fan-keycloak-theme | 2 | FE | Keycloak Theme | Fan login theme | 2025-07-10 |
| peeq-handler-keycloak-theme | 1 | FE | Keycloak Theme | Handler login theme | 2023-04-25 |
| cibseven-keycloak | 2 | INFRA | CIB Seven | CIB Seven Keycloak integration | 2025-07-11 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| terraform-environment | Infra | INFRA | Terraform | Environment provisioning | 2026-01-14 |
| terraform-google-jx | Infra | INFRA | Terraform | GKE + Jenkins X setup | 2022-07-08 |
| terraform-modules | Infra | INFRA | Terraform | Reusable Terraform modules | 2026-01-14 |
| helm-charts | Infra | INFRA | Helm | Kubernetes Helm charts | 2026-01-19 |
| argocd | Infra | INFRA | ArgoCD | ArgoCD server config | 2026-01-08 |
| argocd-deployments | Infra | INFRA | ArgoCD | Deployment manifests | 2026-01-29 |
| argocd-previews | Infra | INFRA | ArgoCD | PR preview environments | 2026-01-29 |
| argocd-reports | Infra | INFRA | ArgoCD | Deployment reports | 2025-08-05 |
| gha-runner | Infra | INFRA | GitHub Actions | Self-hosted runner config | 2025-01-27 |
| gha-runner-images | Infra | INFRA | Docker | Runner image definitions | 2025-06-26 |
| github-reusable-workflow | Infra | INFRA | GitHub Actions | Reusable CI/CD workflows | 2026-01-16 |
| pgbouncer | Infra | INFRA | PgBouncer | Connection pooler config | 2025-06-25 |
| rabbitmq-queue-monitor | Infra | INFRA | TBD | RabbitMQ monitoring | 2025-06-24 |
| peeq-kibana | 1 | INFRA | Kibana | Log visualization | 2021-11-25 |
| peeq-kibana-deploy | 1 | INFRA | Kibana | Kibana deployment | 2022-02-09 |
| trivy-scans | Infra | INFRA | Trivy | Container security scanning | 2026-01-30 |
| renovate-config | Infra | INFRA | Renovate | Dependency update config | 2025-01-03 |
| site-maintenance | Infra | INFRA | TBD | Maintenance page | 2025-06-24 |
| devops-utlities | Infra | INFRA | TBD | DevOps utility scripts | 2025-08-26 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| peeq-airbyte | 1 | INFRA | Airbyte | ETL data integration | 2022-05-04 |
| dlt-pipelines | 2 | SVC | Python/DLT | Data loading pipelines | — |
| superset-imports | 2 | INFRA | Superset | Analytics dashboard imports | 2025-10-13 |
| peeq-etl | 1 | SVC | TBD | ETL processes (legacy) | 2022-03-25 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| peeq-external-task-gateway | 1 | SVC | TBD | Camunda external task gateway | 2022-10-26 |
| peeq-scheduler | 1 | SVC | TBD | Task scheduler | 2021-07-29 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| peeq-integration-test | 1 | Test | TBD | Integration test suite | 2020-11-05 |
| peeq-load | 1 | Test | TBD | Load/performance testing | 2022-03-05 |
| peeq-sandbox | 1 | Test | TBD | Development sandbox | 2022-06-13 |
| playwright | 2 | Test | Playwright | E2E test automation | 2026-01-29 |
| test-spring-boot-app | 2 | Test | Java/SB | Test reference app | 2025-06-30 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| documentation | 2 | Doc | TBD | Platform documentation | 2025-10-07 |
| peeq-documentation | 1 | Doc | TBD | Documentation (legacy) | 2022-01-29 |
| nexgen | 3 | SVC | Empty | Next-gen services (future) | 2026-01-30 |
| memory-bank | 2 | Tool | TBD | Memory bank for AI sessions | — |
| claude-plugins | 2 | Tool | TBD | Claude AI plugins | 2026-01-06 |
| investordeck | 2 | Doc | TBD | Investor presentation | 2025-08-07 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| coolify-poc | POC | INFRA | Coolify | Self-hosting platform evaluation | 2025-10-08 |
| dokploy-poc | POC | INFRA | Dokploy | Deployment platform evaluation | 2025-10-24 |
| firebase-poc | POC | INFRA | Firebase | Firebase evaluation | 2025-07-07 |
| llm-agent-example | POC | Tool | TBD | LLM agent prototype | 2025-04-01 |
| example-java-springboot3 | POC | SVC | Java/SB 3 | Spring Boot 3 reference | 2025-08-05 |
| zoom-cli | POC | Tool | TBD | Zoom CLI integration | 2025-03-27 |
| Repo | Gen | Type | Stack | Description | Last Commit |
|---|---|---|---|---|---|
| clearlyagile | 2 | FE | TBD | ClearlyAgile brand site | 2025-08-12 |
| clearlyagile-strapi | 2 | SVC | Strapi | ClearlyAgile CMS | 2025-08-12 |
| clearlyagile-v0 | 2 | FE | TBD | ClearlyAgile v0 | 2025-08-13 |
| nilgp-partnerportal | 2 | FE | TBD | NIL Game Plan partner portal | 2025-12-22 |
| pvz-connect-be | 2 | SVC | TBD | PVZ Connect backend | 2023-08-17 |
| Category | Count |
|---|---|
| Total repos cataloged | 192 |
| Gen 1 (peeq-*) services | 107 |
| Gen 2 (non-peeq) services | ~50 |
| Database repos | 25 |
| BPM repos | 11 |
| Frontend repos | 14 |
| Infrastructure repos | 19 |
| Libraries | 8 |
| POCs/Experiments | 6 |
Domain-by-domain strangler fig migration. Each phase is independently deployable and rollback-safe.
| Principle | Detail |
|---|---|
| Zero-downtime | All migrations use Istio traffic shifting |
| Rollback always available | Gen 2 services remain deployed until consolidated service is validated |
| One domain at a time | Reduce blast radius |
| External IDs preserved | Stripe, Mux, Zoom, Stream Chat IDs carried forward |
| Backward-compatible API | GraphQL schemas evolve additively; both old and new serve traffic simultaneously |
| Wave | Phase | Scope | Risk |
|---|---|---|---|
| Wave 1 | Phase 0: Infrastructure | Regional GKE, Cloud SQL HA, NetworkPolicies, CI security, OTel, test framework | Low |
| Phase 0.5: BPM Replacement | Replace CIB Seven with Operaton (community Camunda 7 fork) for purchase + shoutout workflows | Medium | |
| Wave 2 | Phase 1: Payment | Merge wallet + transaction + stripe + subscriptions → payment-service (4 DBs → 1) | Medium |
| Phase 2: Communication | Merge email + sms + notifications → notification-service (shared DB already) | Low | |
| Wave 3 | Phase 3: Identity | Merge celebrity + fan + users → identity-service (3 DBs → 1) | Medium |
| Phase 4: Content | Merge content + media → content-service + NFS→GCS migration | Medium | |
| Phase 5: Events | Merge shoutout + shoutout-bpm; upgrade class-catalog; merge journey | Medium | |
| Wave 4 | Phase 6: Platform + Frontend + Keycloak | Platform services consolidation, frontend monorepo unification, Keycloak migration (LAST) | High |
| Condition | Threshold |
|---|---|
| Error rate | >1% for >5 minutes post-migration |
| Payment failure rate | >0.1% for >2 minutes |
| P99 latency | >2x baseline for >10 minutes |
| Financial data inconsistency | Any detected |
| Domain | Tables | External IDs | Strategy | Risk |
|---|---|---|---|---|
| Payment | 15 | Stripe (customer, product, subscription) | Schema merge + validate balances | High |
| Notification | ~14 | Mandrill, Twilio SIDs (logs only) | Already shared DB — no data migration | Low |
| Identity | ~12 | None (Keycloak UUIDs only) | Schema merge | Medium |
| Content | ~20 | Mux (asset, playback), NFS paths | Schema merge + NFS→GCS | High |
| Shoutout | ~6 | Mux (asset, playback) | Schema merge | Medium |
| Class-Catalog | ~15+ | None | In-place upgrade + remove Arlo | Medium |
| Platform | ~8 | None | Schema merge | Low |
| Inventory | ~12 | Stripe product IDs | In-place upgrade | Low |
H14 Falsified: Incremental upgrade with targeted consolidation, not a full rewrite.
| Factor | Evidence | Favors |
|---|---|---|
| Tech stack currency | Java 21, Spring Boot 3.5.4, Angular 18.2 — all current | Upgrade |
| Pattern consistency | All services use core-lib, GraphQL, RabbitMQ, Keycloak (H13 L1) | Upgrade |
| Service boundaries | Database-per-service, no shared DB backdoors (H6 L1) | Upgrade |
| Multi-brand arch | Config-only differentiation (H11 L2) | Upgrade |
| BPM engine EOL | CIB Seven must be replaced regardless | Neutral |
| Test coverage | Near-zero (H7 falsified) — rewrite wouldn’t have tests either | Neutral |
| Infrastructure debt | Zonal clusters, no alerting — infra changes, not app rewrites | Upgrade |
| Frontend split | CSS mismatch — restyling, not logic rewrite (H4 L1) | Upgrade |
| External integrations | 11 active APIs — all must be preserved regardless | Neutral |
| Target Service | Source Services | Rationale |
|---|---|---|
| identity-service | celebrity, fan, users | Same domain, shared Keycloak |
| content-service | content, media | Shared Mux, overlapping video |
| payment-service | stripe, subscriptions, wallet, transaction | Same financial domain |
| purchase-workflow | purchase-request-bpm (Operaton) | CIB Seven replacement |
| shoutout-service | shoutout, shoutout-bpm | Absorb BPM into service |
| class-catalog-service | class-catalog, journey | Same learning domain |
| notification-service | email, sms, notifications | Shared DB, delivery pipeline |
| platform-services | tags, tracking, group-profile, org-manager | Small supporting services |
| Service | Reason |
|---|---|
| inventory | Cross-cutting hub — called by 5 domains |
| webinar | Zoom lifecycle management |
| chat | Thin Stream Chat SaaS wrapper |
| message-board | Redis SSE fanout, distinct pattern |
| sse | Platform-wide real-time infrastructure |
| search | Elasticsearch integration |
| onsite-event | Distinct domain |
| keycloak | Identity provider — migrated last |
| Layer | Current (Gen 2) | Target |
|---|---|---|
| Java | 21 (except content: 24) | Java 21 LTS (standardize) |
| Spring Boot | 3.5.4 | 3.x latest (maintain current) |
| Frontend | Angular 18.2 (2 repos) | Next.js (React) (Tailwind CSS, SSR) — via ADR-002 interim then ADR-008 |
| BPM Engine | CIB Seven 2.0 | Operaton (community Camunda 7 fork) |
| GKE | Zonal, cluster-per-tenant | Regional, shared cluster |
| Observability | Prometheus + Grafana | + OpenTelemetry + alerting + SLOs |
| Security | Manual scanning | CI-enforced Trivy + Qwiet |
Prioritized technical debt across 7 categories. P0 = blocks migration, P1 = complicates migration, P2 = improve when convenient.
| Item | Category | Effort | Impact |
|---|---|---|---|
| CIB Seven EOL | BPM Engine | M | 2 BPM services + Keycloak plugin unsupported |
| Deprecated Mandrill library | Dependencies | S | lutung 0.0.8 unmaintained, security risk |
| Zonal GKE clusters | Infrastructure | L | No HA — zone failure = full outage |
| Zonal Cloud SQL | Infrastructure | M | No automatic failover for databases |
| Near-zero test coverage | Testing | XL | 2–3 test files per service across all services |
| No CI security enforcement | Security | S | Trivy/Qwiet run but don’t block deploys |
| No alerting configuration | Observability | M | Prometheus deployed but no PrometheusRules |
| Content service on Java 24 | Standardization | S | Non-LTS version, inconsistent with other services |
| Item | Category | Effort | Impact |
|---|---|---|---|
| Cluster-per-tenant cost scaling | Infrastructure | XL | 4 identical clusters × all services |
| Frontend CSS framework split | Frontend | XL | Tailwind vs Bootstrap blocks unification |
| No distributed tracing | Observability | M | OpenTelemetry not adopted |
| No SLOs/error budgets | Observability | M | No reliability targets defined |
| APM disabled | Observability | S | Elastic APM agent not collecting |
| No NetworkPolicies | Security | M | All pods can communicate freely |
| ~110 repos to archive | Codebase | S | Dead repos create confusion |
| 12+ dead services with repos | Codebase | S | Gen 1 overlap with Gen 2 |
| core-lib version drift | Dependencies | S | 0.0.67–0.0.69 across services |
| messages lib version drift | Dependencies | S | 0.0.48–0.0.73 wider range |
| NFS storage coupling | Infrastructure | L | 4×50Gi PVCs per tenant tied to GKE zone |
| Elasticsearch 7.x | Dependencies | M | EOL version, needs upgrade to 8.x or Elastic Cloud |
| 3 date libraries in frontends | Frontend | S | date-fns + moment + luxon 1 (pick one) |
| Apollo version mismatch | Frontend | S | apollo-angular 11 vs 7 |
| Service | Tables | Endpoints | Consolidate Into |
|---|---|---|---|
| wallet | 3 | 5 | payment-service |
| transaction | 1 | 7 | payment-service |
| onsite-event | 2 | ~5 | Keep (distinct domain) |
| sse | 2 | Inbound MQ only | Keep (platform infra) |
| chat | 2 | ~5 | Keep (Stream SaaS wrapper) |
| message-board | 4 | ~8 | Keep (Redis SSE pattern) |
Immovable constraints, observability gaps, security gaps, and buy-vs-build analysis.
| External Service | Platform Services | What Must Be Preserved | Risk |
|---|---|---|---|
| Stripe | stripe, subscriptions, purchase-bpm | Customer IDs, product IDs, webhook URLs | High |
| Mux | content, media, shoutout | Asset IDs, playback IDs, webhook URLs | High |
| Zoom | webinar | Meeting IDs, registrant IDs, credentials | Medium |
| Stream Chat | chat | Channel IDs, API keys, user tokens | Medium |
| Twilio | sms, Keycloak SPI | Account SID, phone numbers | Low |
| Mandrill | API key, templates, sender domains | Low | |
| Airbyte/Snowflake | analytics | CDC connections (20 DBs), warehouse schemas | Medium |
| Capability | Current State | Target |
|---|---|---|
| Alerting | No PrometheusRules configured | Critical alert rules for all services |
| Distributed tracing | Not adopted | OpenTelemetry auto-instrumentation |
| APM | Elastic APM agent disabled | Active APM collection |
| SLOs / Error budgets | Not defined | SLIs/SLOs per service |
| Log aggregation | Elasticsearch + Kibana (Gen 1 pipeline) | Cloud Logging or Elastic Cloud 8.x |
| Capability | Current | Recommendation | Rationale |
|---|---|---|---|
| Email delivery | Mandrill (lutung library) | Replace with Resend API (ADR-012) | lutung is dead; Resend proven in CortexOne; simpler SDK |
| SMS delivery | Twilio (SaaS) | Keep | Already SaaS, working well |
| BPM engine | CIB Seven 2.0 | Migrate to Operaton | Near-zero migration from Camunda 7; invest in BPM as platform capability |
| Logging pipeline | peeq-logging (Gen 1 Node.js) | Replace with Cloud Logging | Native GCP integration, no maintenance |
| Chat | Stream Chat (SaaS) | Keep | Thin wrapper, no benefit to building |
Progressive register of domain-level migration verdicts and hypothesis assurance levels.
| Domain | Verdict | Complexity | Key Constraint |
|---|---|---|---|
| Frontend | Consolidate | XL | CSS framework mismatch (Tailwind vs Bootstrap) |
| User Identity | Upgrade | L | Magic Link SPI + CIB Seven EOL |
| Content & Streaming | Consolidate | L | Mux integration spans content + media |
| Payment (Billing) | Upgrade | L | CIB Seven BPM + Stripe sync |
| Payment (Wallet) | Upgrade | S | Simple coin ledger |
| Payment (Transaction) | Upgrade | S | Single-table payment log |
| Dwolla | Retire | S | Inactive since Jan 2023 |
| Events (Shoutout) | Consolidate | M | CIB Seven BPM orchestrates fulfillment |
| Events (Inventory) | Upgrade | M | Cross-cutting product catalog hub |
| Events (Class-Catalog) | Upgrade | M | Deprecated Arlo LMS references |
| Comms (Email+SMS+Notif) | Consolidate | M | Mandrill library unmaintained; shared DB |
| Comms (Chat) | Upgrade | S | Thin Stream Chat wrapper |
| Comms (SSE) | Upgrade | S | Platform-wide real-time infrastructure |
| Infrastructure (GKE) | Upgrade | L | Zonal → regional HA |
| CI/CD | Upgrade | S | Add security enforcement to existing workflows |
| Helm Charts | Upgrade | S | Common chart v0.0.179 is stable |
| Terraform | Upgrade | M | Add regional HA, NetworkPolicies |
| Observability | Upgrade | M | Gaps in alerting, tracing, APM |
+ 9 more Retire verdicts for Gen 1 dead services (meet-and-greet, custom-tixr, peeq-conference-sse, peeq-websocket, peeq-sse, peeq-logging, peeq-shared-secret, etc.)
| # | Hypothesis | Assurance | Status |
|---|---|---|---|
| H1 | Broadcast not in production | L2 Verified | Confirmed — archive repos |
| H2 | Dwolla inactive | L2 Verified | Confirmed — archive repos |
| H3 | Gen 1 fully replaced by Gen 2 | L1 Validated | Only infra Gen 1 remains |
| H4 | Frontend unification feasible | L1 Validated | CSS restyling, not logic rewrite |
| H5 | >50% repos archivable | L1 Validated | ~110 of 192 (57%) |
| H6 | No shared DB backdoors | L1 Validated | Clean boundaries confirmed |
| H7 | >60% test coverage | L0 Falsified | 2–3 test files per service |
| H8 | Data volumes manageable | L0 Partial | DB tier known, row counts needed |
| H9 | No compliance blockers | L0 Partial | Likely SAQ-A, need Stripe confirmation |
| H10 | APIs backward-compatible | L0 Partial | GraphQL additive pattern supports it |
| H11 | Multi-brand is config-only | L2 Verified | All domains + infrastructure confirmed |
| H12 | RabbitMQ contracts discoverable | L2 Verified | ~75 message types fully mapped |
| H13 | core-lib stable foundation | L1 Validated | Consistent across all services |
| H14 | Gen 3 rewrite justified | L1 Falsified (Reframed) | Traditional rewrite rejected; agentic clean-build preserves architecture |
Go/No-Go recommendation, Sprint 0 scope, prioritized backlog, and team skills assessment.
| Factor | Evidence | Confidence |
|---|---|---|
| Architecture is sound | H14 falsified — preserve architecture, regenerate code | L1 |
| Service boundaries clean | H6 — no shared DB backdoors | L1 |
| Multi-brand is config-only | H11 — verified across all domains | L2 |
| Contracts discoverable | H12 — 75+ message types mapped | L2 |
| Shared libraries stable | H13 — core-lib proven foundation | L1 |
| Dead code identified | ~110 repos archivable, 12+ dead services | L1 |
| Migration strategy phased | Every phase has rollback plan | L1 |
| # | Story | Priority | Effort |
|---|---|---|---|
| 1 | Upgrade GKE to regional | P0 | L |
| 2 | Enforce CI security scanning | P0 | S |
| 3 | Deploy OpenTelemetry auto-instrumentation | P0 | M |
| 4 | Set up integration test framework | P0 | M |
| 5 | POC: Operaton migration for purchase workflow | P1 | M |
| 6 | POC: Notification service consolidation | P1 | M |
| Skill | Current State | Gap |
|---|---|---|
| Java 21 / Spring Boot 3.5 | All Gen 2 services | No gap |
| Angular 18 / Nx | Both frontend repos | No gap |
| Spring GraphQL | All services use this | No gap |
| RabbitMQ / core-lib | All services use this | No gap |
| Terraform / Atlantis | Mature IaC workflow | No gap |
| Operaton (Camunda 7 fork) | Using CIB Seven (Camunda 7.17) | Near-zero migration |
| OpenTelemetry | Not adopted | Training needed |
| NetworkPolicies | Not deployed | Training needed |
| Tailwind CSS (frontends team) | Bootstrap currently | Training needed |
| Integration testing | Very low coverage | Practice needed |
| Blocker | Action | Owner |
|---|---|---|
| H8: Production data volumes unknown | Obtain row counts for all 35 databases | Platform / DBA |
| H9: PCI scope unconfirmed | Access Stripe dashboard, confirm SAQ level | Engineering lead |
Cross-cutting synthesis of all inter-service communication: GraphQL, REST webhooks, and RabbitMQ.
| Pattern | Usage | Count |
|---|---|---|
| GraphQL | Synchronous service-to-service queries/mutations | 24+ gateways |
| REST | External webhooks (Stripe, Mux, Zoom) + file uploads | 4 webhook endpoints |
| RabbitMQ | Async events via core-lib MessageSender/Handler | ~75 message types |
| Metric | Count |
|---|---|
| Total message types discovered | ~75 |
| Publishing services | 20+ |
| Consuming services | 15+ |
| Services with both pub + sub | 12 |
| Dead message types | 3+ (Dwolla, encryption) |
| API | Service | Purpose | Keys per Tenant |
|---|---|---|---|
| Stripe | stripe | Payment processing, webhooks | 2 (payment key + webhook secret) |
| Mux | content, media | Video upload, transcode, playback | 2 (token ID + secret) |
| Twilio | Keycloak SPI, sms | SMS delivery | 2 (SID + auth token) |
| Mandrill | Transactional email | 1 (API key) | |
| Zoom | webinar | Meeting creation, registration | 2 (key + secret) |
| Stream Chat | chat | Real-time messaging | 2 (key + secret) |
| GCS | media, celebrity | Blob storage, signed URLs | Workload Identity |
Total: 3 production tenants × 11 active integrations = ~33 key sets to manage/migrate.
| Risk | Impact | Mitigation |
|---|---|---|
| Keycloak migration | All 28+ services affected simultaneously | Migrate last, coordinated maintenance window |
| Inventory service coupling | Called by 5 domains | Keep stable, upgrade in place |
| BPM engine in-flight state | Running process instances | Drain active instances before replacement |
| External webhook URLs | Stripe, Mux (×2), Zoom | Update dashboards during migration |
| Notification pipeline | Primary fan-out mechanism | Migrate as single unit, test all channels |
24 proposed architectural decisions pending engineering team review. Click any row to see full detail.
| ADR | Decision | Status | Key Evidence | Overall Assurance |
|---|---|---|---|---|
| ADR-001 | Service Consolidation: ~28 → ~18 services along domain boundaries | Proposed | H13 L1 (consistent patterns), H6 L1 (clean boundaries), H12 L2 (contracts discoverable) | L1 (capped by H8) |
| ADR-002 | Frontend Unification (Interim): Merge into single monorepo on Tailwind CSS, before Next.js migration (ADR-008) | Proposed | H4 L1 (feasible via restyling), both repos Angular 18 (L2), ~17% dead code | L1 |
| ADR-003 | Java Standardization: All services on Java 21 LTS, aligned core-lib versions | Proposed | 28+ services already on Java 21 (L2), content service Java 24 is anomaly (L2) | L1 |
| ADR-004 | Multi-Brand: Shared GKE cluster with namespace-per-tenant isolation | Proposed | H11 L2 (config-only differentiation), same Docker images (L2) | L1 (capped by H8) |
| Target | Source Services | Rationale |
|---|---|---|
| identity-service | celebrity, fan, users | Same domain, shared Keycloak |
| content-service | content, media | Shared Mux, overlapping video |
| payment-service | stripe, subscriptions, wallet, transaction | Same financial domain |
| notification-service | email, sms, notifications | Shared DB, delivery pipeline |
| shoutout-service | shoutout, shoutout-bpm | Absorb BPM into service |
| class-catalog-service | class-catalog, journey | Same learning domain |
| platform-services | tags, tracking, group-profile, org-manager | Small supporting services |
| Layer | Current | Target |
|---|---|---|
| Compute | Separate clusters | Namespace + ResourceQuota |
| Network | Physical isolation | NetworkPolicies (default-deny) |
| Service mesh | Separate Istio | Shared Istio + AuthorizationPolicy |
| Database | Separate Cloud SQL | Shared Cloud SQL + separate schemas |
| Messaging | Separate RabbitMQ | Shared RabbitMQ + vhosts |
| Secrets | Cluster-scoped | Namespace-scoped (AVP) |
Canonical terminology for The Agile Network platform.
| Canonical Term | Code Names / Aliases | Description |
|---|---|---|
| Expert | celebrity, celeb, talent, athlete | Professional athletes, coaches who create content and host experiences |
| Fan | fan, subscriber, consumer | Users who subscribe, attend events, purchase content |
| Handler | handler, agent, manager | Agents who manage expert profiles and scheduling |
| Admin | admin | Platform administrators |
| Organization | org, org-manager | Entities sponsoring or managing groups of experts |
| Term | Description |
|---|---|
| Broadcast | One-to-many live video event powered by Mux |
| Shoutout | Personalized video message from expert to fan (Cameo-style) |
| Webinar | Multi-participant interactive video session via Zoom |
| Content | Videos, articles, resources, educational materials |
| Class | Scheduled educational/training sessions with CEU/PDU tracking |
| Subscription | Recurring billing relationship (fan subscribes to expert channel) |
| Wallet | In-app virtual currency (“Peeq” coins) for purchases |
| Inventory | Cross-cutting product catalog and capacity management |
| Brand | Slug | Status | Market |
|---|---|---|---|
| The Agile Network | agilenetwork | Production | Sports fan-to-athlete engagement |
| NIL Game Plan | nilgameplan | Production | NIL for college athletes |
| VT NIL | vtnil | Production | Virginia Tech NIL |
| Speed of AI | speedofai | Production | AI/tech vertical |
| BrainTrust | braintrust | Preview | Business/professional networking |
| FanFuze NIL | fanfuzenil | Preview | Fan engagement + NIL deals |
| Gen | Package Prefix | Java | Spring Boot | CI/CD | Status |
|---|---|---|---|---|---|
| Gen 1 | com.peeq / peeq-* | 11 | 2.6.8 | Jenkins X | Legacy — being retired |
| Gen 2 | com.velocityz / non-prefixed | 21 | 3.5.4 | GitHub Actions | Current production |