Repo: dashboard-service
Spring Boot service providing dashboard-related APIs for Pickrr/Fastrr, aggregating operational, finance, catalog, promotion, and engagement data. It reads from multiple MongoDB databases and ClickHouse for analytics/reporting, uses Redis for caching/session support, and integrates with internal microservices plus external systems like Google Analytics and AWS (S3/SES). It also produces/consumes Kafka events for reporting and webhooks.
flowchart LR U[Dashboard UI / Client] -->|HTTPS| DS[dashboard-service] DS -->|Config fetch| CS[Spring Cloud Config Server] DS -->|Read/Write| M1[(MongoDB Primary)] DS -->|Read| M2[(MongoDB Reporting/Tracking)] DS -->|Read| CH[(ClickHouse)] DS -->|Cache/Session| R[(Redis)] DS <--> K[Kafka] DS --> AG[aggregator-service] DS --> CAT[catalog-service] DS --> PRO[promotion-service] DS --> PAY[payment-aggregator] DS --> FIN[fastrr-finance] DS --> OMS[fastrr-oms] DS --> URL[url-shortner] DS --> COM[communication-service] DS --> LAT[laterr-service] DS --> GA[Google Analytics] DS --> S3[AWS S3] DS --> SES[AWS SES] DS --> CT[CleverTap] DS --> MO[MoEngage] DS --> CP[CredPay API]
flowchart TB %% External Entities E1[External Entity: Dashboard UI/Client] E2[External Entity: Internal Services (aggregator/catalog/promotion/payment/finance/OMS/url/communication/laterr/identity)] E3[External Entity: Third-Party APIs (Google Analytics, CleverTap, MoEngage, CredPay)] E4[External Entity: AWS (S3, SES)] %% Process P1([Process: dashboard-service Dashboard APIs & Aggregation]) %% Data Stores D1[(Data Store: MongoDB (primary/secondary/reporting/tracking/shopify))] D2[(Data Store: ClickHouse)] D3[(Data Store: Redis)] D4[(Data Store: Kafka Topics)] D5[(Data Store: Config Server Properties)] %% Flows E1 -->|API requests| P1 P1 -->|API responses| E1 P1 <-->|Service calls| E2 P1 <-->|API calls| E3 P1 -->|Store reports / send emails| E4 P1 <-->|Read/Write| D1 P1 <-->|Read| D2 P1 <-->|Cache/Session| D3 P1 <-->|Publish/Consume events| D4 P1 -->|Fetch configuration| D5