Design: Event Types in Microservices Architecture
Design focuses on event types and their handling in a microservices environment. Out of scope are detailed UI notification designs and specific business logic implementations.
Functional Requirements
FR1: Support domain events to capture business state changes within a service
FR2: Support integration events to communicate between different microservices asynchronously
FR3: Support notification events to inform users or external systems about important occurrences
FR4: Ensure reliable delivery of events with minimal latency
FR5: Allow event consumers to subscribe selectively to event types
FR6: Support event versioning and schema evolution
FR7: Handle failures and retries for event processing
Non-Functional Requirements
NFR1: System must handle up to 10,000 events per second
NFR2: Event delivery latency p99 should be under 200ms
NFR3: Availability target of 99.9% uptime
NFR4: Events must be durable and not lost in case of failures
NFR5: Support eventual consistency between microservices