Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Store enriched projects in DynamoDB #1

Open
pvhee opened this issue Nov 27, 2016 · 3 comments
Open

Store enriched projects in DynamoDB #1

pvhee opened this issue Nov 27, 2016 · 3 comments
Assignees

Comments

@pvhee
Copy link
Member

pvhee commented Nov 27, 2016

We need to store projects in a NoSQL database like dynamoDB, enriched with:

  • organisation data? maybe in a different table
  • geo-data. Geocode the main organisation.

In order not to timeout the lambda functions, we might need to use SQS to queue up all projects to be enriched (from the original xls data), process them with a lambda function, and store them enriched in our data storage.

@pvhee
Copy link
Member Author

pvhee commented Nov 28, 2016

Getting some insight into timeouts and db throughput tweaking via https://medium.com/@CodingJoe/dealing-with-dynamodb-write-capacity-limits-and-lambda-timeouts-f4e08d9f4b4f#.beltqobit and https://hackernoon.com/top-5-lessons-learned-from-trying-to-build-my-own-serverless-website-d65a168c5e6d#.ylm7i7xa2

This way - we can avoid complicating our architecture with SQS and stick with a DynamoDB. We could probably rate limit writing to dynamoDB via https://github.com/jhurliman/node-rate-limiter

Geo-annotations can happen via streaming to lambda's, following https://aws.amazon.com/blogs/aws/dynamodb-update-triggers-streams-lambda-cross-region-replication-app/

@pvhee
Copy link
Member Author

pvhee commented Jan 9, 2017

After playing around with various different ways of dealing with DynamoDB, dynamodb-wrapper seems the most fit to write a lot records without having to have massive write throughput: https://www.npmjs.com/package/dynamodb-wrapper

@pvhee
Copy link
Member Author

pvhee commented Jan 9, 2017

Updated plan is to:

  • parse projects with related organisations. Store the main organisation at the same level as the project, and store the other organisations as a blob within that project (this is optional)
  • enrich each project with geodata -- trial dynamoDB streams with geotagging lambda

@pvhee pvhee self-assigned this Jan 9, 2017
@pvhee pvhee mentioned this issue Jan 9, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant