High-level system architecture

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

Fishermen German COI app high level sys architecture.png

Break-down of the high-level system architecture:

  1. Client Layer:

  2. Load Balancer:

  3. API Gateway:

  4. Microservices:

    The microservices architecture will allow us to easily modify or scale specific parts of the app without affecting the entire application.

  5. Data Layer:

  6. Integration Layer:

  7. Active Directory:

Recommended Tech-Stack

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

Frontend-Backend Interaction

The system will use a REST API to communicate between FE and BE: