Hey Gavin,

Yep, that's me!

You say a set of mutable objects, is this something like in-memory
> collections?
>

I'm experimenting with an obscure but fascinating (to me)  framework called
Permazen:

https://github.com/permazen/permazen

It's an alternative take on Java persistence - sort of like an ORM but
where the backing is a KV store rather than an RDBMS. There's no query
language, you just use NavigableSet and a variety of utilities. It's
remarkably mature e.g. it has full support for indexing, transactions,
validation, a variety of KVStore backends, and there's even a full blown
Raft implementation. Plus although it's not mentioned in the repo, it's
actually used in production.

There's a white paper in the repo, a presentation, JavaDocs and the wiki
explains the API.

I've been waiting for a chance to use it for real for some years now. Well,
now I have a chance. The big weakness (IMHO) of Permazen is that whilst it
does provide a CLI for invoking code using Java syntax, and you can do
queries and mutations that way, Java syntax is a bit verbose for that and
anyway existing tools all speak SQL. I'd like to experiment
with implementing my app server persistence with Permazen, and keep SQL off
to the side for interactive query/hotpatching + maybe dashboarding.

Calcite seems ideally suited for this. Permazen gives you a bunch of
objects and collections that can be accessed inside transactions.
Collection operations and bean property read/writes are converted to KV
read/writes behind the scenes.

Sure enough, queries work quite well and it didn't take much code to get
there. But updates, well ... maybe that's where my cunning plan comes
unglued. I don't want to spend a huge amount of time on this. What I'm
really looking for is someone who's done this before so I can fumble my way
through a cargo-cult operation. It doesn't have to be robust or perfect,
because it's an experiment to see if this way of writing apps feels good.

Hopefully that provides enough background info.

thanks,
-mike

Reply via email to