Wie wähle ich einen Partitionsschlüssel in DynamoDB für eine Chat-App aus?
Ich muss DynamoDB für eine Chat-App verwenden, die gelegentlich an einem Veranstaltungstag verwendet wird. Die App liest / schreibt an einem bestimmten Tag einige Tausend Nachrichten, danach fast keine mehr.
Hier ist was ich vorhabe:
Table: Messages
HashKey: Event day name
SortKey: Message timestamp
Ich kann die letzten 20 Nachrichten abrufen (Chat-App erhält normalerweise nur die neuesten Daten, nein?), Aber alle Lese- / Schreibvorgänge werden nur an eine Partition weitergeleitet.
Ich könnte es so versuchen
Table: EventDayMessage
HashKey: Message timestamp
Damit wird das Lesen / Schreiben auf die neuere Nachricht verteilt, aber ich habe keine Möglichkeit, die neuesten Nachrichten abzurufen, da kein Sortierschlüssel vorhanden ist.
Ist Methode 2 in meinem Szenario besser? Was kann ich für den Sortierschlüssel verwenden? Gibt es noch andere bessere Vorschläge (außer db wechseln)?