DEV Community

Cover image for DynamoDB as EventStore
Aleix Morgadas
Aleix Morgadas

Posted on

DynamoDB as EventStore

I would like to share with you how we managed to deploy a solution to store Domain Events in DynamoDB in 2 days (and mostly because of AWS permission issues...😅).

We needed to store how the user interacted with different Domain Models and decouple that storage from the monolithic so they can grow independently. We aimed to create something super simple, or at least not that complex, in 2 to 3 days.

We decided to give a try to process events as:

Monolith sends message to ➡️ SQS ➡️ Triggers Lambda to store it into ➡️ DynamoDB Table

Even though DynamoDB might not be an optimal solution to be used as Event Store, we have given it a try for the next reasons:

  • It is fully managed by AWS
  • It is cheap enough
  • We don't require high write throughput nor read for the moment.
  • Able to encrypt the content

Implementation

We decided to go with:

gif

Source Code


Feedback

What would you do differently? Did I miss something? Did you have a similar solution for a similar problem?

Oldest comments (1)

Collapse
 
aleixmorgadas profile image
Aleix Morgadas

We have identified that the SQS might fail when there is a high spike of events in small timeframe (+4K events in less than a minute). We are planning to move SQS to Kinesis. I will update the repository accordingly.