alhambra1
Dear Ecto and Elixir lovers,
Here at Circles we recently started a new project where we wanted to use DynamoDB as a storage backend for Phoenix, so we decided to create a DynamoDB adapter for Ecto. It has a lot of missing features and rough edges, but we’ve decided to release the project as open source in the hopes that others will find it useful.
Outside contributions are encouraged; we’ll be happy to review any third-party patches that anyone sends our way.
For more information, please visit:
https://github.com/circles-learning-labs/ecto_adapters_dynamodb
Franko, Nick, Darren, and Gilad
Circles Learning Labs
Trending in Discussions
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
New
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
I’m posting this in response to Jose’s recent tweet (Cr. link) :
People are sleeping on Elixir for a coding harness:
Hot-code swappi...
New
It would be helpful to have a list of companies worldwide that hire engineers without prior experience in Elixir. Often, it can be quite ...
New
Anyone running long-lived stateful processes on BEAM? We’re building an AI agent runtime and would love to compare notes.
We’re a small ...
New
This might be a bit disturbing for some but it’s happening - computers running on living human neurons. They’ve made them smart enough t...
New
Other Trending Topics
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Aludel - LLM Evaluation Workbench
Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #blog-post
- #ai
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 9- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
ericheikkila
Looking for some guidance on:
“** (Mix) Expected Ecto.Adapters.DynamoDB to implement Ecto.Adapter.Storage in order to create storage for xxx”
Is there any work being done to implement Adapter.Storage for the DynamoDB adapter? I can see using Postgres or some other storage implementation for Unit Testing, but for integration/acceptance level testing I’d like to be able to hit a (local) DynamoDB instance.
Thanks in advance for pointers to where this is being worked on or why it isn’t
-Eric
michalmuskala
The
Storageimplementation is responsible for creating/dropping database. Correct me if I’m wrong, but I think that doesn’t really make sense in the context of DynamoDB.In that case, everything should work correctly, if you don’t call the
ecto.createandecto.droptasks.ericheikkila
Ah, ok, so in the DynamoDB case, even running local, dropping and creating those don’t make much sense.
Running with the ecto adapter for dynamodb throws an error about the ‘storage’ issue and won’t run, which seems odd. Wonder if there’s a way to just override it and say “sure, we handle that” and just make the drop and create no-ops?
I’m also wondering, for what I’m trying to do, if it isn’t just as easy to use the ExAws project directly. I may attack that angle a bit (although the adapter is really nice).
Or I’ll get it in my head to go try to add some fake adapters for storage to the code…pull down master…and get:
alhambra1
Thank you for your comments, Eric and Michal. We have yet to visit any
Storage callbacks for the adapter. Eric, if you like, please raise an issue
in our github repository with more details about the error you are
experiencing and how to reproduce it. We’ll be happy to take a look.
Sincerely,
Gilad
Franko
@eric - Looks like it’s complaining on missing quick check libraries - Which makes sense, since you won’t have that installed. @alhambra, I thought it compiled by default without having those available? Any compile time flag? Or will we need to tweak to remove?
And I agree with Michael - Creating storage just doesn’t make sense with DynamoDB - The storage layer already ‘exists’ and cannot be deleted - All we allow is the creation of schema/tables via the adapter. In your test code, the easy solution would be to avoid calling the storage functions at all - It will all work fine without them. If that’s not possible, then it seems you’d like a way for the storage functions to work without causing an error.
Michael, do you have any good thoughts on what a ‘correct’ implementation might be? ‘success’ with warning?
Last note - Alhambra1 is correct in that defects for these in the gitlab repo is a good way of ensuring that any requests are tracked and not lost.
nickelization
@ericheikkila thanks for the heads up on the EQC build error. I wouldn’t have expected that to be a problem for building the adapter code, only for running unit tests, but even in that case it would be best if we could have it automatically skip the QuickCheck stuff and still run any other tests that are available. (And actually, we could probably use something like eqc_suite to also allow for running QuickCheck tests to a limited extent even without a commercial license, but that’d take some doing and will probably be on the back burner for a while.)
Anyway, I’ll try and take a look at adding a quick and dirty fix for the EQC errors sometime in the next couple days. In the mean time you are welcome to just locally rip out any modules that mention EQC, and that should get you up and running for now.
nickelization
Sorry for the long delay since my last reply! Been a really busy couple of weeks but I finally got around to fixing the adapter test modules so that they skip the EQC code if you don’t have it installed. Let me know if you run into any more issues
skwidbreth
It’s been a while since there’s been big news for the adapter, but we’ve just released an alpha version that supports integration with Ecto 3 - ecto_adapters_dynamodb | Hex
Community use and feedback would be much appreciated!
chocolatedonut
Can anyone further share their experiences, good or bad, with Ecto and DynamoDB (DDB) since the last post? Experiences w/ DDB itself are also welcome.
I would have used Postgres (PG), but was forced hands on a (unfinished) project which stores user records in DDB. The only options I see are:
A) sync DDB to PG via DDB-Streams (likely sending to SQS and then consuming the queue). Or,
B) forego PG for user authentication and use DDB directly, using
mix phx.gen.auth-generated code (as is; or with modifications) along with the Ecto DDB adapter.C) ?
More generally, curious if anyone had to deal with such, or similar, case.
In a related thread, the only hands-on experience was shared by @frumos.