Messaging: Nachrichtenspeicher pro User auf 10 MB begrenzen (FIFO-Eviction + Server-Hinweis) #103

Closed
opened 2026-05-17 21:32:27 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-17 21:32:27 +00:00 (Migrated from github.com)

## Anforderung

Den serverseitigen Nachrichtenspeicher pro User auf 10 MB begrenzen.

Verhalten bei Überschreitung

  1. Overflow-Handling: Wenn neue Nachrichten das 10-MB-Limit überschreiten würden, werden die ältesten Nachrichten zuerst gelöscht (FIFO-Eviction), bis wieder Platz vorhanden ist.
  2. Server-Nachricht im Chat: Nach dem Löschen erscheint im Chat des Senders eine Systemnachricht (als wäre der Server ein Chatteilnehmer), z. B.:

    Nachrichtenlimit für [Empfänger] überschritten. Ältere Nachrichten wurden gelöscht, da der Empfänger nicht abgeholt hat.

Annahmen / Rahmenbedingungen

  • Abgeholte Nachrichten werden direkt nach der Zustellung vom Server entfernt (kein Einfluss aufs Limit).
  • Das Limit gilt pro Empfänger-Postfach (noch nicht zugestellte Nachrichten).
  • Die Server-Systemnachricht ist nur für den Sender sichtbar, der den Overflow ausgelöst hat.
## Anforderung Den serverseitigen Nachrichtenspeicher pro User auf **10 MB** begrenzen. ## Verhalten bei Überschreitung 1. **Overflow-Handling:** Wenn neue Nachrichten das 10-MB-Limit überschreiten würden, werden die **ältesten Nachrichten zuerst gelöscht** (FIFO-Eviction), bis wieder Platz vorhanden ist. 2. **Server-Nachricht im Chat:** Nach dem Löschen erscheint im Chat des Senders eine Systemnachricht (als wäre der Server ein Chatteilnehmer), z. B.: > Nachrichtenlimit für [Empfänger] überschritten. Ältere Nachrichten wurden gelöscht, da der Empfänger nicht abgeholt hat. ## Annahmen / Rahmenbedingungen - Abgeholte Nachrichten werden direkt nach der Zustellung vom Server entfernt (kein Einfluss aufs Limit). - Das Limit gilt pro Empfänger-Postfach (noch nicht zugestellte Nachrichten). - Die Server-Systemnachricht ist nur für den Sender sichtbar, der den Overflow ausgelöst hat.
jreinemann-euris commented 2026-05-18 07:17:31 +00:00 (Migrated from github.com)

Abgeschlossen (2026-05-18)

Zyklen: 1
Tests: 3 neue Tests, 0 Fehler (server-seitig)

Implementierte Artefakte

  • SendMessageResponse (shared): Neues Response-DTO mit optionalem systemMessage-Feld
  • MessageRepository: getUndeliveredStorageBytes() + evictOldestUndelivered() (FIFO)
  • MessageRoutes: 10 MB Mailbox-Limit pro Empfänger, Eviction vor dem Speichern
  • App (MessageRepositoryImpl): Parst systemMessage aus Response, zeigt Systemnachricht im Chat
  • Tests: 3 neue Server-Tests (below limit, exceeds limit, delivered not counted)
## Abgeschlossen (2026-05-18) **Zyklen:** 1 **Tests:** ✅ 3 neue Tests, 0 Fehler (server-seitig) ### Implementierte Artefakte - ✅ **SendMessageResponse** (shared): Neues Response-DTO mit optionalem systemMessage-Feld - ✅ **MessageRepository**: getUndeliveredStorageBytes() + evictOldestUndelivered() (FIFO) - ✅ **MessageRoutes**: 10 MB Mailbox-Limit pro Empfänger, Eviction vor dem Speichern - ✅ **App (MessageRepositoryImpl)**: Parst systemMessage aus Response, zeigt Systemnachricht im Chat - ✅ **Tests**: 3 neue Server-Tests (below limit, exceeds limit, delivered not counted)
Sign in to join this conversation.
No description provided.