Design: Microservices Architecture with Shared Database
Focus on the implications of using a shared database among microservices. Out of scope are detailed service implementations or UI design.
Functional Requirements
FR1: Multiple microservices must access and update data related to their domain.
FR2: Each microservice should be independently deployable and scalable.
FR3: Data consistency must be maintained across services.
FR4: Services should be loosely coupled to allow independent development.
Non-Functional Requirements
NFR1: Database schema is shared among all microservices.
NFR2: Latency for API responses should be under 300ms p99.
NFR3: System should handle 5,000 concurrent users.
NFR4: Availability target is 99.9% uptime.