sarat1669

sarat1669

Alternatives for MongoDB?

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?

Most Liked

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:

OvermindDL1

OvermindDL1

N-to-M join tables.

Unsure what that is modeling but a transaction can do multi-updates atomically.

Join tables don’t care about depth. ^.^

All of which are just normal queries or (materialized) views, which are bliss. ^.^

This is all entirely not only supported by SQL but would be very well modeled as such, plus it helps to think how to model the data as it helps to get the code in better order as well. More ‘types’ is always better. :slight_smile:

I’ve heard that argument many times and also seen it ripped apart many times. What you said at the end is precisely the most cited reason why it fails but that’s not even the biggest reason, which is the failure of typing and reliability around knowing the types.

Ankhers

Ankhers

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

outlog

outlog

what is the nature of the data? using postgres with https://github.com/timescale/timescaledb or https://github.com/citusdata/citus 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)

Ankhers

Ankhers

The most compelling argument that I have heard is from this video here. Keep in mind I have not verified the information, but from a high level, it makes sense.

The argument being, SQL databases are optimized for memory. Which made sense for when they were made because memory was one of the most expensive pieces in a datacentre. Now memory is fairly cheap and CPU’s have become the most expensive pieces in a datacentre. NoSQL apparently optimizes for the CPU, which is why it generally has a fairly “dumb” querying mechanism.

But to me, that just seems to move the CPU usage from the database and into your application(s). So I don’t really know how it is a win.

I just wish I had a lot of time to dig deep into as many databases as I could in order to find what each of their use cases are. Unfortunately for me, I don’t have that time.

Where Next?

Popular in Questions Top

aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
Werner
Hi, I’m using Ubuntu 18.04 and after updating to OTP-24.0 yesterday i have this warning when I run “mix local.hex”: 14:57:30.512 [warn] ...
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
makeitrein
Hey all, just started picking up Elixir last week and am writing a scraper as a learning project. Baby step #1 is extracting the number ...
New
chewm
Hi guys, nice to meet you to the whole forum, I’m new here, I’m trying to configure visual studio code for elixir, right now the intellis...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Mooodi
Given a string, how can I get access to its character by index? Enum.at("my_string", 2) doesn't work. Or rather, not char, but a substr...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Other popular topics Top

sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
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
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
magnetic
Hey :wave:t3: Elixir community, I’ve been learning Elixir, and working on some side projects. My editor of choice is VSCode, and althoug...
New

We're in Beta

About us Mission Statement