fix(#28): Notification-Strategie definieren
Some checks are pending
Docker Test / test (push) Waiting to run
Some checks are pending
Docker Test / test (push) Waiting to run
This commit is contained in:
parent
e4098e3e2a
commit
c904641677
1 changed files with 32 additions and 0 deletions
32
docs/concepts/notification-strategy.md
Normal file
32
docs/concepts/notification-strategy.md
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Notification-Strategie
|
||||||
|
|
||||||
|
## Ereignisse
|
||||||
|
|
||||||
|
Die folgenden Ereignisse sind in der Anwendung definiert:
|
||||||
|
|
||||||
|
1. **Neues Angebot** – Ein neues Angebot wurde erstellt.
|
||||||
|
2. **Gegenangebot** – Ein Gegenangebot wurde eingereicht.
|
||||||
|
3. **Deal** – Ein Deal wurde abgeschlossen.
|
||||||
|
4. **Bewertungsfenster** – Das Bewertungsfenster (2-14 Tage) für ein Angebot ist geöffnet.
|
||||||
|
|
||||||
|
## Notification-Queue/Dispatcher-Schnittstelle
|
||||||
|
|
||||||
|
Das Backend muss einen klaren Hook pro Kernereignis haben, um Benachrichtigungen zu versenden. Die Schnittstelle zur Notification-Queue wird wie folgt definiert:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
interface NotificationEvent {
|
||||||
|
type: 'offer' | 'counter-offer' | 'deal' | 'review-window';
|
||||||
|
payload: any;
|
||||||
|
userId: string;
|
||||||
|
timestamp: Date;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface NotificationDispatcher {
|
||||||
|
dispatch(event: NotificationEvent): Promise<void>;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Retry- und Dedupe-Regeln
|
||||||
|
|
||||||
|
- **Retry**: Bei einem Fehler beim Versand einer Benachrichtigung wird ein Retry-Mechanismus mit exponentiellem Backoff verwendet.
|
||||||
|
- **Dedupe**: Jede Benachrichtigung wird einmalig pro Nutzer und Ereignis versendet, um Duplikate zu vermeiden.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue