ImmuDB -- Lightweight Immutable Database

With 100% less blockchain.

I went searching for a lightweight immutable database that could be audited and ran into this.

I guess this is similar to XTDB and Datomic in Clojure-land, though they are maybe more full-featured and also look, kinda, heavier? AWS also has an immutable database offering that I didn’t know about, Amazon QLDB.

ImmuDB has an interesting and even surprising Postgres integration using Phoenix and Elixir: GitHub - codenotary/immudb-postgres-demo: immudb demo to track PostgreSQL table change history, though it’s from two years ago.

2 Likes

Corresponding tweet for this thread:

Share link for this tweet.

2 Likes

I would love an immutable history temporally indexed (shows latest ‘version’ of a row by default), however this doesn’t look like it, and something ‘modern’ being built in Go fills me with about as much trust in its stability and security as it being built in C or C++, which isn’t much, so that’s a weird language choice for something where they keep talking about the security…

That’s even before getting into the lack of pretty necessary features as well.

4 Likes

Golang’s curse, as Java’s before it, is the accessibility and appeal to a bigger group of programmers – OK let me not pull punches here, let’s call it like it is: more mediocre ones.

This inevitably leads to an explosion of popularity, writing a lot of frameworks and tools in the said language, and then 10-15 years later the industry is horrified by the ecosystem and the software quality, someone invents the next “accessible” language, everyone is all excited how “the new stuff fixed 10% of the problems of the old stuff” (let’s get real, that’s what it is very often) and the cycle repeats.

(sighs)

Until people actually make declarative programming work – and have it compile directly to machine code, or maybe better yet, to a highly successful language in terms of a compiler like Rust, OCaml or Ada / Forth – then I don’t think the area at large will at all progress.

I am about to hit 42 and it’s all just repeating in front of my eyes and makes me hopeless. We as a collective just don’t learn… :100:

2 Likes

All progress has already been or can be done by a Lisp language (or scheme’ish, like RacketLang, lol). ^.^

2 Likes

Yeah, but they lack a good runtime and/or super strict static typing. :009:

2 Likes

Racket has both, lol.

Various lisp’s have a variety of runtimes, and as for static typing, it, like it is in typed racket, is just a macro to transform the language to have typing. Lisp is completely redefinable, hence why it’s the most powerful. ^.^

2 Likes

You think Racket is on the level of Rust / Haskell / OCaml when it comes to typing? Or that it is about to have a runtime as good as BEAM VM’s?

2 Likes

BEAM is not so much a runtime as it is an OS, lol.

And racket’s strong typing is pretty good, no lifetime management like rust but it could definitely do full dependent typing like Idris if someone were to create it, the language is absolutely capable of it.

(Rust’s lifetime’s are a subset of full dependent types like Idris, a tiny tiny subset).

2 Likes

And therein lies the conundrum, my man. A potential is meaningless until it’s realized.

2 Likes

Then get to it!! ^.^

2 Likes

Nah, still too tired and weak. Just started recovering…

2 Likes