https://lucid.app/lucidspark/f417a0ec-a4c9-4aeb-81ee-d4c9e69918a3/edit?viewport_loc=-24%2C133%2C2389%2C1376%2C0_0&invitationId=inv_8fb872cb-2859-4dd0-be96-50fa479b6d20

Client Layer:
Load Balancer:
API Gateway:
Microservices:
The microservices architecture will allow us to easily modify or scale specific parts of the app without affecting the entire application.
Data Layer:
Integration Layer:
Active Directory:
| Category | Technology | Reason | 
|---|---|---|
| Frontend | Javascript + React/Next.Js | Component-based architecture, huge ecosystem and community support, easy to scale, and suitable for large and complex systems. | 
| Backend | Node + Express | Javascript around ecosystem, large package ecosystem | 
| Database | PostgreSQL | Supports complex queries and very robust | 
| ORM | Prisma | Type-safe database access, supports migrations | 
| Microservices | Docker + Kubernetes | Containerization and orchestration for scalable microservices architecture | 
| Maps | Leaflet.js + OpenStreetMap | As recommended in the PRD | 
| LLM Integration | OpenAI + Other LLM API | SOTA models for AI capabilities | 
| Websockets | Socket.io | Real-time, bidirectional communication between web clients and servers | 
The system will use a REST API to communicate between FE and BE: