# manishrnl/microservice-industry-level-boiler-plate architecture

> Architecture diagram of the GitHub repository manishrnl/microservice-industry-level-boiler-plate, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/manishrnl/microservice-industry-level-boiler-plate
- Repository: https://github.com/manishrnl/microservice-industry-level-boiler-plate

## Overview

This is a reusable microservice platform with a React application in front of a Spring Cloud Gateway. A typical user journey enters through the browser, reaches a domain service through the gateway, and returns a feature result; the README documents the gateway routing and major feature set. Backend capabilities include identity and sessions, user profiles, files, payments, AI chat, notifications, audit, and observability. The graph preserves these product branches and documented infrastructure; internal arrows are limited to relationships shown in excerpts or the source index.

Main entry points: [`backend/api-gateway/src/main/java/com/company/platform/gateway/filter/JwtAuthenticationFilter.java`](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/api-gateway/src/main/java/com/company/platform/gateway/filter/JwtAuthenticationFilter.java) (API gateway), [`backend/config-server/src/main/java/com/company/platform/configserver/ConfigServerHomeController.java`](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/config-server/src/main/java/com/company/platform/configserver/ConfigServerHomeController.java) (Config server), [`backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java`](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java) (Authentication), [`backend/payment-service/src/main/java/com/company/platform/payment/service/PaymentService.java`](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/payment-service/src/main/java/com/company/platform/payment/service/PaymentService.java) (Payments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["User application"]
  node_webapp["React application<br/>[App.jsx]"]
  node_home["Home and dashboard<br/>[HomePage.jsx]"]
  node_profile["Profile management<br/>[ProfilePage.jsx]"]
  node_aiui["AI chat UI<br/>[AiChatPage.jsx]"]
  node_adminui["Admin screens"]
end

subgraph group_edge["Gateway and platform control"]
  node_gateway["API gateway"]
  node_gatewaylogs["Gateway observability"]
  node_config["Config server"]
  node_discovery["Service discovery"]
end

subgraph group_identity["Identity and users"]
  node_auth["Authentication<br/>[AuthService.java]"]
  node_sessions["Session management"]
  node_email["Auth email delivery"]
  node_users["User profiles and admin"]
end

subgraph group_domains["Product services"]
  node_files["File management"]
  node_payments["Payments"]
  node_aichat["AI chat<br/>[AiChatService.java]"]
  node_aiproviders["AI provider adapters"]
  node_notifications["Notifications"]
  node_audit["Audit records"]
end

subgraph group_data["Data and integrations"]
  node_postgres[("PostgreSQL")]
  node_redis[("Redis")]
  node_kafka["Kafka"]
  node_minio[("MinIO storage")]
  node_stripe["Stripe"]
  node_aiprovidersvc["Gemini and Groq"]
  node_mail["SMTP or Brevo"]
end

node_browser(("Browser user"))

node_browser -->|"uses"| node_webapp
node_webapp -->|"calls backend"| node_gateway
node_gateway -->|"routes requests"| node_auth
node_gateway -->|"routes requests"| node_users
node_gateway -->|"routes requests"| node_notifications
node_gateway -->|"routes requests"| node_payments
node_gateway -->|"routes requests"| node_files
node_gateway -->|"routes requests"| node_aichat
node_gateway -->|"routes requests"| node_audit
node_gateway -->|"records logs"| node_gatewaylogs
node_config -->|"configures"| node_gateway
node_config -->|"configures"| node_auth
node_config -->|"configures"| node_users
node_config -->|"configures"| node_notifications
node_config -->|"configures"| node_payments
node_config -->|"configures"| node_files
node_config -->|"configures"| node_aichat
node_config -->|"configures"| node_audit
node_discovery -->|"supports discovery"| node_gateway
node_discovery -->|"supports discovery"| node_auth
node_auth -->|"manages sessions"| node_sessions
node_auth -->|"sends verification"| node_email
node_email -->|"delivers email"| node_mail
node_aichat -->|"selects provider"| node_aiproviders
node_auth -->|"persists identity"| node_postgres
node_users -->|"persists profiles"| node_postgres
node_notifications -->|"persists notifications"| node_postgres
node_payments -->|"persists payments"| node_postgres
node_files -->|"persists metadata"| node_postgres
node_aichat -->|"persists chat"| node_postgres
node_audit -->|"persists audit"| node_postgres
node_gateway -->|"uses shared state"| node_redis
node_auth -->|"uses shared state"| node_redis
node_aichat -->|"uses cache"| node_redis
node_auth -->|"publishes events"| node_kafka
node_users -->|"publishes events"| node_kafka
node_payments -->|"publishes events"| node_kafka
node_notifications -->|"uses events"| node_kafka
node_audit -->|"uses events"| node_kafka
node_files -->|"stores objects"| node_minio
node_payments -->|"creates checkout"| node_stripe
node_aiproviders -.->|"dispatches prompts"| node_aiprovidersvc

click node_webapp "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/App.jsx"
click node_home "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/HomePage.jsx"
click node_profile "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/ProfilePage.jsx"
click node_aiui "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/ai/AiChatPage.jsx"
click node_adminui "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/admin/SuperAdminDashboardPage.jsx"
click node_gateway "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/api-gateway/src/main/java/com/company/platform/gateway/filter/JwtAuthenticationFilter.java"
click node_gatewaylogs "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/api-gateway/src/main/java/com/company/platform/gateway/log/GatewayLogService.java"
click node_config "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/config-server/src/main/java/com/company/platform/configserver/ConfigServerHomeController.java"
click node_discovery "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/discovery-server/src/main/java/com/company/platform/discovery/DiscoveryServerApplication.java"
click node_auth "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java"
click node_sessions "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/service/AuthSessionService.java"
click node_email "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/email/AuthEmailDeliveryService.java"
click node_users "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/user-service/src/main/java/com/company/platform/user/service/AuthUserAdminService.java"
click node_files "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/file-service/src/main/java/com/company/platform/file/service/FileMetadataCacheService.java"
click node_payments "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/payment-service/src/main/java/com/company/platform/payment/service/PaymentService.java"
click node_aichat "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/ai-service/src/main/java/com/company/platform/ai/service/AiChatService.java"
click node_aiproviders "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/ai-service/src/main/java/com/company/platform/ai/provider/AiProviderFactory.java"
click node_notifications "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/notification-service/src/main/java/com/company/platform/notification/service/NotificationService.java"
click node_audit "https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/audit-service/src/main/java/com/company/platform/audit/service/AuditRecordService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webapp,node_home,node_profile,node_aiui,node_adminui,node_browser toneBlue
class node_gateway,node_gatewaylogs,node_config,node_discovery toneAmber
class node_auth,node_sessions,node_email,node_users toneMint
class node_files,node_payments,node_aichat,node_aiproviders,node_notifications,node_audit toneRose
class node_postgres,node_redis,node_kafka,node_minio,node_stripe,node_aiprovidersvc,node_mail toneIndigo
```

## Components

### User application

- [React application](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Home and dashboard](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/HomePage.jsx): `frontend/src/pages/HomePage.jsx`
- [Profile management](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/ProfilePage.jsx): `frontend/src/pages/ProfilePage.jsx`
- [AI chat UI](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/ai/AiChatPage.jsx): `frontend/src/pages/ai/AiChatPage.jsx`
- [Admin screens](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/frontend/src/pages/admin/SuperAdminDashboardPage.jsx): `frontend/src/pages/admin/SuperAdminDashboardPage.jsx`

### Gateway and platform control

- [API gateway](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/api-gateway/src/main/java/com/company/platform/gateway/filter/JwtAuthenticationFilter.java): `backend/api-gateway/src/main/java/com/company/platform/gateway/filter/JwtAuthenticationFilter.java`
- [Gateway observability](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/api-gateway/src/main/java/com/company/platform/gateway/log/GatewayLogService.java): `backend/api-gateway/src/main/java/com/company/platform/gateway/log/GatewayLogService.java`
- [Config server](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/config-server/src/main/java/com/company/platform/configserver/ConfigServerHomeController.java): `backend/config-server/src/main/java/com/company/platform/configserver/ConfigServerHomeController.java`
- [Service discovery](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/discovery-server/src/main/java/com/company/platform/discovery/DiscoveryServerApplication.java): `backend/discovery-server/src/main/java/com/company/platform/discovery/DiscoveryServerApplication.java`

### Identity and users

- [Authentication](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java): `backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java`
- [Session management](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/service/AuthSessionService.java): `backend/auth-service/src/main/java/com/company/platform/auth/service/AuthSessionService.java`
- [Auth email delivery](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/auth-service/src/main/java/com/company/platform/auth/email/AuthEmailDeliveryService.java): `backend/auth-service/src/main/java/com/company/platform/auth/email/AuthEmailDeliveryService.java`
- [User profiles and admin](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/user-service/src/main/java/com/company/platform/user/service/AuthUserAdminService.java): `backend/user-service/src/main/java/com/company/platform/user/service/AuthUserAdminService.java`

### Product services

- [File management](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/file-service/src/main/java/com/company/platform/file/service/FileMetadataCacheService.java): `backend/file-service/src/main/java/com/company/platform/file/service/FileMetadataCacheService.java`
- [Payments](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/payment-service/src/main/java/com/company/platform/payment/service/PaymentService.java): `backend/payment-service/src/main/java/com/company/platform/payment/service/PaymentService.java`
- [AI chat](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/ai-service/src/main/java/com/company/platform/ai/service/AiChatService.java): `backend/ai-service/src/main/java/com/company/platform/ai/service/AiChatService.java`
- [AI provider adapters](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/ai-service/src/main/java/com/company/platform/ai/provider/AiProviderFactory.java): `backend/ai-service/src/main/java/com/company/platform/ai/provider/AiProviderFactory.java`
- [Notifications](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/notification-service/src/main/java/com/company/platform/notification/service/NotificationService.java): `backend/notification-service/src/main/java/com/company/platform/notification/service/NotificationService.java`
- [Audit records](https://github.com/manishrnl/microservice-industry-level-boiler-plate/blob/main/backend/audit-service/src/main/java/com/company/platform/audit/service/AuditRecordService.java): `backend/audit-service/src/main/java/com/company/platform/audit/service/AuditRecordService.java`

### Data and integrations

- **PostgreSQL**
- **Redis**
- **Kafka**
- **MinIO storage**
- **Stripe**
- **Gemini and Groq**
- **SMTP or Brevo**

### Other components

- **Browser user**

## Connections

- Browser user → React application: uses (evidence: `README.md`)
- React application → API gateway: calls backend (evidence: `README.md`)
- API gateway → Authentication: routes requests (evidence: `README.md`)
- API gateway → User profiles and admin: routes requests (evidence: `README.md`)
- API gateway → Notifications: routes requests (evidence: `README.md`)
- API gateway → Payments: routes requests (evidence: `README.md`)
- API gateway → File management: routes requests (evidence: `README.md`)
- API gateway → AI chat: routes requests (evidence: `README.md`)
- API gateway → Audit records: routes requests (evidence: `README.md`)
- API gateway → Gateway observability: records logs (evidence: `backend/api-gateway/src/main/java/com/company/platform/gateway/log/GatewayLogService.java`)
- Config server → API gateway: configures (evidence: `README.md`)
- Config server → Authentication: configures (evidence: `README.md`)
- Config server → User profiles and admin: configures (evidence: `README.md`)
- Config server → Notifications: configures (evidence: `README.md`)
- Config server → Payments: configures (evidence: `README.md`)
- Config server → File management: configures (evidence: `README.md`)
- Config server → AI chat: configures (evidence: `README.md`)
- Config server → Audit records: configures (evidence: `README.md`)
- Service discovery → API gateway: supports discovery (evidence: `README.md`)
- Service discovery → Authentication: supports discovery (evidence: `README.md`)
- Authentication → Session management: manages sessions (evidence: `backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java`)
- Authentication → Auth email delivery: sends verification (evidence: `backend/auth-service/src/main/java/com/company/platform/auth/service/AuthService.java`)
- Auth email delivery → SMTP or Brevo: delivers email (evidence: `backend/auth-service/src/main/java/com/company/platform/auth/email/AuthEmailDeliveryService.java`)
- AI chat → AI provider adapters: selects provider (evidence: `backend/ai-service/src/main/java/com/company/platform/ai/service/AiChatService.java`)
- Authentication → PostgreSQL: persists identity (evidence: `README.md`)
- User profiles and admin → PostgreSQL: persists profiles (evidence: `README.md`)
- Notifications → PostgreSQL: persists notifications (evidence: `README.md`)
- Payments → PostgreSQL: persists payments (evidence: `README.md`)
- File management → PostgreSQL: persists metadata (evidence: `README.md`)
- AI chat → PostgreSQL: persists chat (evidence: `README.md`)
- Audit records → PostgreSQL: persists audit (evidence: `README.md`)
- API gateway → Redis: uses shared state (evidence: `README.md`)
- Authentication → Redis: uses shared state (evidence: `README.md`)
- AI chat → Redis: uses cache (evidence: `README.md`)
- Authentication → Kafka: publishes events (evidence: `README.md`)
- User profiles and admin → Kafka: publishes events (evidence: `README.md`)
- Payments → Kafka: publishes events (evidence: `README.md`)
- Notifications → Kafka: uses events (evidence: `README.md`)
- Audit records → Kafka: uses events (evidence: `README.md`)
- File management → MinIO storage: stores objects (evidence: `README.md`)
- Payments → Stripe: creates checkout (evidence: `backend/payment-service/src/main/java/com/company/platform/payment/service/PaymentService.java`)
- AI provider adapters → Gemini and Groq: dispatches prompts
