2015-07-24 33 views
9

Guardando attraverso la nuova funzionalità di dynamodb stream, puoi usarlo per fare scenari push in tempo reale come una chat room? Oppure puoi solo eseguire il polling degli stream api per ottenere aggiornamenti periodici?puoi usare gli stream dynamodb per avere trigger in tempo reale come firebase?

Sembra che gli unici esempi mostrino dynamodb connesso a uno stream di kinesis per effettuare push in tempo reale anziché tramite polling.

Prendendo ulteriormente l'esempio della chat room, è possibile chiamare i dynamodb streams api "GetRecords" con una clausola di filtro in modo da ottenere solo i record per un hash o un intervallo specifico?

Che cos'è un "ShardIterator?" Leggendo la documentazione, non è chiaro a cosa sia specificamente utilizzato.

risposta

7

DynamoDB Gli stream sono molto, molto simili a Kinesis ma tecnicamente diversi. Usano API simili e anche le loro librerie client sono correlate, ma sono diverse.

Sembra che si stia aspettando un client (ex: browser) in esecuzione su un client per ricevere una notifica che un record è cambiato in tempo reale. Questo non è ciò che offre DynamoDB Streams.

DynamoDB Gli stream sono più simili all'approccio NoSQL + Cloud ai trigger di database.

Sarebbe possibile creare qualcosa di simile a Firebase utilizzando DynamoDB + DynamoDB Streams + Lambda + un certo tipo di server socket Web. Usando questo approccio potresti scrivere sul tuo database DynamoDB notificare una funzione Lambda che notificherà un server web socket a cui i client sono connessi in tempo reale. Ciò significa che DynamoDB Streams + Lambda in realtà non sta facendo il lavoro pesante per questo caso d'uso in quanto sarebbe necessario eseguire il proprio server web socket su EC2.

1

Ora che AWS IoT è disponibile, è possibile eseguire flussi DynamoDB> Lambda> AWS IoT> Browser su MQTT or Websockets. Funziona in entrambi i modi - con il percorso di ritorno più semplice dato che AWS IoT può pubblicare direttamente su Dynamodb.

Lambda riceve un elenco di record da Dynamodb Streams e consente di scorrere l'elenco e pubblicare i dati su client appropriati utilizzando gli argomenti MQTT strutturati per chat o utente (/ chat/{uuid} o/chat/joe).

Problemi correlati