Design: Async Processing Decoupling Example
Design focuses on illustrating how asynchronous processing decouples two systems. It excludes detailed UI or database schema design beyond messaging and state tracking.
Functional Requirements
FR1: Allow two systems to communicate without waiting for each other
FR2: Ensure messages are reliably delivered even if one system is slow or down
FR3: Support scaling of each system independently
FR4: Handle failures gracefully without losing data
Non-Functional Requirements
NFR1: Must handle up to 10,000 messages per second
NFR2: Message delivery latency p99 under 500ms
NFR3: System availability target 99.9%
NFR4: Support eventual consistency between systems