0
votes

We have a mobile game that sends events to our server. Then we write to Kinesis Firehose (that writes to s3) using Kinesis Agent. One of the fields is device_id. We wish to have a table in dynamodb that for each device_id we remember the day of first time playing (the time of the first event we got for that device_id). This should be updated at real time(or as near real time as possible) How should we do it? With Lambda? With Kinesis Analytics? Any other solution?

Thanks

2

2 Answers

0
votes

Dynamodb is not a supported destination point for Kinesis Firehose or Kinesis Data Analytics, so there needs to be a middleman here, like Lambda. Two possible scenarios,

  • You could utilize Data Analytics to write your stream to a Kinesis DataStream. Then utilize Lambda to reach dynamodb.

  • As you're already writing to S3 with Firehose, keep your current setup and trigger the Lambda function by monitoring S3, more details here,

    https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

0
votes

I'm biased since I work for that company, but it's an easy to do with Drools Kinesys Analytics. Just keep in mind that you will need to split to shards in case you have many users, since everything should be kept in memory all the time. And every shard is handled by one node.