Erstelle ein Systemdesign-Diagramm für eine Chat-Anwendung
Über das Framework
Dieses Architekturbeispiel enthält elf Komponenten und zwölf Verbindungen. Ein Mobil- oder Web-Client erreicht einen Load Balancer, der eine Verbindung zu zwei WebSocket-Servern und einem REST-API-Server herstellt. Beide WebSocket-Server verbinden sich mit Redis Pub/Sub, während der REST-Server eine Verbindung zu Kafka herstellt.
Die übrigen Pfeile verbinden Redis mit PostgreSQL sowie Kafka mit PostgreSQL, S3, Elasticsearch und Push-Benachrichtigungen. Dabei handelt es sich um schematische Verbindungen: Die für Persistenz, Indexierung, Medienverarbeitung und Benachrichtigungszustellung verantwortlichen Anwendungs-Worker sind im Beispiel nicht eingezeichnet. Auch Präsenzstatus, Nachrichtensortierung und das Verhalten bei Wiederverbindungen bleiben offen.
Nutze das Diagramm, um ein Designgespräch rund um den Weg einer einzelnen Nachricht zu strukturieren. Ergänze die Dienste und Bestätigungen, die erklären, was passiert, bevor der Absender eine Erfolgsmeldung sieht, was ein Offline-Empfänger erhält und wie mit einer erneut gesendeten Nachricht umgegangen wird. Lege Skalierungs- und Zustellungsanforderungen fest, bevor du diese Details auswählst.
Enthalten
Systemdesign für eine Chat-Anwendung
✦ Free preview · Sign in to use
Häufig gestellte Fragen
Nein. Es zeigt die Verbindungen zwischen den Komponenten, aber keine geordneten Sendevorgänge, Bestätigungen oder Wiederholungsschritte. Bitte dich dir eine Sequenzansicht für ein konkretes Szenario an, etwa das Senden an einen Offline-Nutzer.
Das Beispiel zeichnet einen Pfeil von Redis Pub/Sub zu PostgreSQL, legt aber nicht fest, welche Anwendungslogik dahintersteht. Füge vor der Implementierung einen Persistenzdienst hinzu und definiere seine Aufgaben.
S3 Media Store und Push Notification sind im Beispiel beide mit Kafka verbunden. Das Initiieren von Uploads, der Zugriff auf Medien, Benachrichtigungsanbieter und Fehler bei der Zustellung sind nicht dargestellt.
Kostenlos starten. Keine Kreditkarte erforderlich.