AWS' DynamoDB for the Laravel Framework Project
How this project came about:

∙ My custom podcast admin is built with my free and open source LaSalle Software, which is based on the Laravel Framework and Nova

∙ I want my custom podcast admin to remain on its Digital Ocean droplet

∙ I want AWS related podcast post production on Lambda

What does this mean for my database??
    ∙ have AWS access my D.O. database?
    ∙ have my D.O. app access an AWS database?
    ∙ do a nightly export from D.O. to AWS db?
    ∙ perhaps do simultaneous operations in real-time to both AWS and D.O.?

∙ I played around with Nova using DynanmoDB and it's not worth trying to "get it to fit".
keep the db on my droplet  and  add a new DynamoDB table for my post-production stuff.
∙ This means that I will have to figure out an "ETL" operation to get my existing data into DynamoDB.
∙ Then, perhaps perform operations to both databases in real-time; or, just do overnight "ETL's".

∙ AWS wants us to use DynamoDB as part of its serverless platform -- so it seems to me.
∙ DynamoDB also looks like one of the cheaper AWS database options for my use case.
∙ I am fine using NoSQL for the first time ever.
→ Ergo: DynamoDB

∙ Can I use NoSQL with the Laravel Framework?
→ Yes

∙ My first foray into NoSQL + Laravel Framework research led me right to MongoDB and this repo. It is a darned fine looking repo. All the MongoDB stuff looks terrific. Their website looks terrific. Lots of articles, videos, and stuff for learning. The repo looks kick-ass. I am raring to go.

∙ Just one little fly in the ointment: DynamoDB is AWS' proprietary offering which is what I should be using. I expect to use many Amazon web services and I need the AWS internal plumbing to "just work".

Ok... let's take a look at DynamoDB + Laravel Framework...

The Laravel Framework does have a DynamoDB facility... for cache:
Laravel doc
config/cache.php
Illuminate/Cache/DynamoDbStore.php
∙ this code is very specific to the cache's table structure.

For using DynamoDB with eloquent, there is a wonderful repo called baopham/laravel-dynamodb. This is a fantastic repo. Over 500,000 installs since its first commit in 2014.

I created a greenfield local app, and successfully authenticated using this repo with a new DynamoDB table. Awesome. I did find issues:

Issue One... This repo is great for development, but with this recent call for maintainers is probably not ok for production. There are various forks of this repository, with the same issue. Personally, I have concerns about using it for my own podcast platform. So, why don't I just help maintain this repo so that I am comfortable using it in production?

Issue Two... Doc. Creating the DynamoDB table and setting up IAM were not specified in the doc. I am so used to using migrations -- but, of course, migrations do not work. I am very used to tinkering, poking, and prodding through things, but I confess that this time I was irritated. It would be nice to have the luxury of a fellow Artisan's experience of they set up the AWS side of things with this package. Why not contribute online doc, akin to my LaSalle Software's online doc.

I will be using DynamoDB for my post-production, using the Laravel Framework. To learn DynamoDB I will build a DynamoDB package from scratch.

I seek sponsorship to:
∙ create screencasts, articles, and online documentation
∙ build this repository so that it is production worthy for the community

What:

  • ∙ build a repository from the ground up for the Laravel Framework to use AWS' DynamoDB
  • ∙ publish screencasts, software repositories, articles, and other materials as public open source on an ongoing basis
  • ∙ maintain this repository on a long-term ongoing basis

Why:

  • ∙ DynamoDB is AWS' database for serverless
  • ∙ There is a wonderful package for Laravel-DynamoDB that proves DynamoDB + Laravel works (with limits)
  • ∙ This package has issues that make me nervous about using it for long-term production
  • ∙ There is a screaming need for learning materials

Why sponsor this project @ $10/month?

  • ∙ More comprehensive support materials are needed for DynamoDB + Laravel Framework
  • ∙ maintain this repository on a long-term ongoing basis
  • ∙ I authored my Laravel Framework based free and open source LaSalle Software, and wrote online help for it -- including using AWS
  • ∙ I have a real world Laravel application to use as a laboratory: my podcast admin & production platform that I am building
  • ∙ In conjunction with this project is my new Bref + Laravel Framework + AWS Serverless open source project (link is below)


(This page updated on Thursday February 11, 2021)