jimsynz

jimsynz

Ash Core Team

AshCubDB - A CubDB data layer for Ash resources

I’m happy to announce the first (useful) release of AshCubDB an Ash data layer which allows you to back your Ash resources with CubDB.

CubDB

From the CubDB documentation:

CubDB is an embedded key-value database for the Elixir language. It is designed for robustness, and for minimal need of resources.

CubDB is an impressive piece of engineering which is widely used by folks working on Nerves projects. I only learned about it earlier this year, but I’ve been itching to play with it since.

It supports ACID transactions, concurrent reads and writes and is generally resistant to data corruption during unexpected shutdowns or crashes.

Status

AshCubDB does not support, nor is it currently aiming to support all the many many features of other Ash data layers. It does support the basic CRUD operations and filtering. You can use it today.

There are a few things that I haven’t nailed down:

  1. How to handle “migrations” when the attributes of a resource change and thus the existing records are now invalid?
  2. How to handle transactions. CubDB essentially switches to a unit-of-work style structure when in a transaction, with a different API (CubDB.Tx).
  3. Should we dynamically start the CubDB processes when we need them (the current solution) or require that apps start them in their own supervision tree?

Links

First Post!

olivermt

olivermt

Idiomatic for 3 is let people start it by adding to application.ex imo

Edit: its also what ash auth does

Most Liked

lucaong

lucaong

CubDB author, just here to say that this is awesome!

I am also happy to get feedback on CubDB from Ash users.

jimsynz

jimsynz

Ash Core Team

Thanks for your awesome software. I’m so excited to see what the Ash community builds with it.

byu

byu

Just learned about CubDB, now I have to play with it and the new ash integration :slight_smile: . Also, the FAQ was very enlightening and did cover my actual questions about CubDB.

Where Next?

Popular in Announcing Top

Crowdhailer
Experimenting with this code. OK.try do user <- fetch_user(1) cart <- fetch_cart(1) order = checkout(cart, user) save_orde...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 54260 488
New
tmbb
I’ve published the first version of my Makeup library. It’s a syntax highlighter for Elixir in the spirit of Pygments, Currently it highl...
New
pkrawat1
Hey guyz We at @aviabird are working on a payment library in elixir/phoenix. We are targeting March 2018 to add 56 Gateways to it. Have...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 10796 134
New
martinthenth
Hello everybody :wave: Recently, some of my colleagues talked about database ids and uuids and their problems, and I remembered the pain...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42716 114
New

We're in Beta

About us Mission Statement