2015-07-24 13 views
9

Przeglądając nową funkcję strumieni dynamodb, można jej użyć do wykonywania scenariuszy push w czasie rzeczywistym, takich jak pokoje rozmów sieciowych? Czy możesz sondować tylko strumienie API, aby otrzymywać okresowe aktualizacje?Czy możesz używać strumieni dynamodb do wyzwalaczy czasu rzeczywistego, takich jak firebase?

Wygląda na to, że jedyne przykłady pokazują dynamodb połączony ze strumieniem kinesis, aby uczynił go w czasie rzeczywistym, a nie poprzez przepytywanie.

Posługując się przykładem pokoju czatowego, możesz wywołać strumienie dynamodb api "GetRecords" z klauzulą ​​filtru, dzięki czemu otrzymasz tylko rekordy dla określonego skrótu lub zakresu?

Co to jest "ShardIterator?" Czytając dokumentację, nie jest jasne, do czego został specjalnie użyty.

Odpowiedz

7

Strumienie DynamoDB są bardzo, bardzo podobne do Kinezy, ale technicznie różne. Używają podobnych interfejsów API, a ich biblioteki klienckie również są powiązane, ale są różne.

Wygląda na to, że oczekujesz klienta (np. Przeglądarki) działającego na kliencie, aby otrzymać powiadomienie o zmianie rekordu w czasie rzeczywistym. To nie zapewnia strumieni DynamoDB.

Strumienie DynamoDB przypominają raczej chmury NoSQL + dla wyzwalaczy bazy danych.

Byłoby możliwe zbudowanie czegoś podobnego do Firebase przy użyciu DynamoDB + DynamoDB Streams + Lambda + jakiś typ serwera sieciowego. Dzięki takiemu podejściu można wpisywać do bazy danych DynamoDB powiadomienie o funkcji Lambda, która powiadomi serwer gniazd sieciowych, z którym klienci są połączeni w czasie rzeczywistym. Oznacza to, że DynamoDB Streams + Lambda naprawdę nie robi ciężkiego podnoszenia dla tego przypadku użycia, ponieważ trzeba uruchomić własny serwer gniazd internetowych na EC2.

1

Teraz, gdy dostępna jest usługa AWS IoT, można wykonać strumienie DynamoDB> Lambda> AWS IoT> Przeglądarka nad MQTT or Websockets. Działa to w obie strony - z prostszą ścieżką powrotu, ponieważ AWS IoT może publikować bezpośrednio w Dynamodb.

Lambda odbiera listę rekordów ze strumieni Dynamodb, a następnie wyświetla listę i publikuje dane dla odpowiednich klientów za pomocą tematów MQTT uporządkowanych według czatu lub użytkownika (/ chat/{uuid} lub/chat/joe).