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)?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage