sarat1669

sarat1669

I wanted to know which NoSQL databases offer official clients for elixir/erlang?
We currently have mongo as our database and the application is written in JAVA. We are considering porting it to elixir, but since mongo driver for elixir isn’t mature enough, we are looking for an alternative.
Which database are you using and what would you recommend?

Showing Posts 1 to 10

AstonJ

AstonJ

What are your requirements? And… any reason why you wouldn’t want to use Postgres?

_Also did you see the MongoDB adapters here: Packages | Hex

sarat1669

sarat1669 OP

We were having systems running on MySQL previously and chose mongo due to scalability issues. And postgres doesn’t natively provide sharding. I think postgres is more suited for read-heavy workloads. Our workloads are more write-heavy, so we chose Mongo.

I checked the adapters for mongo and most of them aren’t maintained anymore.

Also from the author of the package:

Ankhers

Ankhers

What features are you looking for from a mongo driver? There has been some improvement on it since I wrote that.

dimitarvp

dimitarvp

Have you checked the Basho products one of which is Riak, and it’s written in Erlang?

I am not affiliated but heard people praising them. Never had the chance to try any of their products so far though.

sarat1669

sarat1669 OP

Sorry, but I haven’t used the driver, so not aware of the current limitations (if any) I was going through the discussion on the previously mentioned thread and thought it wasn’t actively maintained.

sarat1669

sarat1669 OP

I think Riak is more of a Key-Value store than a NoSQL database. Also it is eventually consistent and doesn’t support atomic updates.

Ankhers

Ankhers

I’ll admit there hasn’t been much work done on the driver lately, the last commit was about a month ago, but it is still maintained. If you give it a look and there are some features that are not currently in there, just post an issue and we can probably get it sorted out.

outlog

outlog

what is the nature of the data? using postgres with GitHub - timescale/timescaledb: A time-series database for high-performance real-time analytics packaged as a Postgres extension · GitHub or GitHub - citusdata/citus: Distributed PostgreSQL as an extension · GitHub comes to mind.. admittingly I would think “normal” postgres is also up for the job..

that being said I would cautiously warn against changing both the DB and the App layer(to elixir I assume) at the same time.. but all depends on complexity etc. etc.

I would try and get something going using the old DB and Elixir (perhaps reverse proxy the Java app and then build out slowly.. Migrating from Rails to Elixir, bit by bit - #3 by outlog)

OvermindDL1

OvermindDL1

Yep, even raw-bog-standard PostgreSQL has fantastic nosql style storage with far more features than something like mongodb. Although I personally always question why someone thinks they need a nosql style storage, having a properly typed system is always far safer and often much faster. :slight_smile:

sarat1669

sarat1669 OP

The data has multiple objects which can be owned by multiple owners (sub-systems). A subsystem can replace the current object with a new object and assign its properties to different subsystems. The number of levels of the number of object is non-deterministic. It depends on the runtime inputs. And we also do a lot of scheduling based on priority, cost optimisation, etc on top of these subsystems. We have borrowed some concepts from FBP as well. I think modelling such kind of data in a traditional database isn’t a good idea.

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
jaybe78
Hello, I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter). The diffic...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
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
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews