divyenduz / languagelearners

LingoParrot - LanguageLearners.club
1 stars 0 forks source link

State management #24

Closed divyenduz closed 5 years ago

divyenduz commented 5 years ago

Currently, the app is stateless [or state is managed by 3rd party APIs] but eventually, we might have to consider a state management solution aka database.

Requirements, 0 idle cost aka serverless.

Our options:-

  1. Build our own magical serverless solution with SQS, SQLite3, and S3
  2. Aurora Serverless (Need to see how Lambda compatibility looks like, it can only be accessed from VPN at the moment) - first option to explore maybe
  3. DynamoDB (Good from spec but vender locking)
  4. Firebase (Vendor locking, gets expensive quickly from what I have heard)
  5. FaunaDB (whatever that is, it is also available in a serverless pricing model)

Note: Can also use redis and repurpose the same for cache but there is no serverless redis provider yet.

divyenduz commented 5 years ago

These look interesting and related (at least remotely):

https://mqless.com/docs/home/ https://github.com/awslabs/serverless-application-model

divyenduz commented 5 years ago

Poor man's GraphQL to SQL migration system: https://github.com/taylorgoolsby/graphql-to-sql

divyenduz commented 5 years ago

Serverless DB with 400ms response time but in Python: https://github.com/Miserlou/NoDB

divyenduz commented 5 years ago

This is handled in the latest merge of 1.0, we are using Prisma hosted on AWS right now. A serverless state management solution is interesting but this underlying issue is resolved by traditional methods.

In future, we might swap the storage to something crazy like a type-safe client + fauna DB or serverless SQLite madness.