Notification Service

The Notification Service does not expose a REST HTTP API. It is entirely event-driven, consuming domain events published by other services via a message broker (Kafka) and dispatching notifications to users.

Event Consumers

Consumer Description
AvatarEventConsumer Processes avatar-related events (e.g. level-up, spell unlocked)
BattleEventConsumer Processes guild battle events (e.g. battle started, battle won/lost)
GuildEventConsumer Processes guild lifecycle and membership events (e.g. invites, role assignments)
HabitEventConsumer Processes habit completion and missed habit events
MarketplaceEventConsumer Processes marketplace events (e.g. item bought, item sold)
QuestEventConsumer Processes quest events (e.g. quest created/completed, joined/left)
UserEventConsumer Processes user onboarding events (e.g. user registered)

Triggered Notifications

Notifications are dispatched in response to events such as: - Habit completion or missed deadline - Level-up achieved - Guild battle started or concluded - Guild invite received - Marketplace item bought or sold - Quest created, completed, joined, or left - User registered

Notification delivery channel is email, but it can be easily extended to support additional channels by implementing new notification handlers without modifying existing event consumers, nor the producers of the events.