After quite some time not having updates on Mapless, I've invested in getting it working for latests Pharo versions and incorporating and maturing its API and main features.
Today's best Mapless version is v0.5.0-alpha
and the remarks are:
- MongoDB backend can now connect to Replica Sets in a fault tolerant way
- On MongoDB Mapless can be read from secondaries and setting default and custom read and write concerns.
- Updated its PostgreSQL backend using Sven's client P3
- Updated its Redis backend by using Masashi's RediStick
- Incorporated UnQLite backend using Masashi's PunQLite.
I can't miss taking the chance here to send a big thanks for the PRs and conversations and all the code reviews and general input to Esteban Maringolo. You are a very healty influence buddy!
Also, to notice that last week I've seen Norbert's announcement of updates in OmniBase and I've started to play with it. And with SQLite. The idea was to evaluate them as possible next backends because there are use cases in which they can be a good fit.
In general, Mapless value proposition reveals itself as an interesting support for when you mostly want to self-host your data without being locked to a vendor.
For example, assuming you code was not entangled with backend's custom features and if you keep the devops and operations issues aside, your plan for migrating from MongoDB to PostgreSQL and vice versa, could be:
- Instantiating the new repositories used by your app.
- Provide a way for your Mapless to have its properties properly indexed for query optimization.
- Saving the data without further transformations.
- Rewriting your app's queries.
That's pretty much it.
With Mapless strategic value your app stays easy to work with and resilient and more adaptable to future changes.
Example, lets assume we add Firebase and DynamoDB support for Maplees. You decide to implement your app on one of these and use them while convenient, but later you migrate from it because the platform policies and economic value turned out to misalign with your business. With Mapless, your capacity for executing such decision would not be as dramatic as it would for other tech-stacks.
For more about the project's direction, you can take a look at the current and resolved issues in GitHub. Also, its changelog is also fairly well maintained as I've tried not to miss anything important there.
And I've started this Reddit community to have a forum for the project's questions and as an effort to ease adoption.
You might also find me online in Pharo's Discord server where there is a #database
channel for all Pharo persistence related conversations and I'll will help as I can.