[squeak-dev] [ANN] Magma 1.4

Chris Muller ma.chris.m at gmail.com
Fri Dec 28 21:53:38 UTC 2012


I am pleased to announce the release of Magma 1.4 for Squeak 4.4.
Magma is a database for Squeak that allows complex domain models to be
developed with virtually no regard for persistence issues.  Said
models can run entirely in memory without Magma even loaded in the
image or, by loading Magma, the size of the domain model can exceed
the size of RAM and be simultaneously accessed and updated by multiple
clients over a network with ACID properties.  Further, by copying the
database files to another machine on same network and starting a
server on them, uninterrupted 24x7 service is gained automatically --
either server can go down at any time and will be automatically sync'd
from the other when restarted.

Magma regards data-integrity as a top priority.  My oldest critical
database still running today was "born" in 2004 and has survived major
domain refactorings, 8 years of Magma upgrades, two hard-drive crashes
and several power-outages.  By hashing the contents of every commit,
and writing them atomically to disk (among other security measures),
Magma is an ultra-safe place to develop and store mission-critical
objects.  Correct mcz versions of domain code can be co-located in the
same repository as the model it runs, ensuring full application
recoverability even in the worst circumstances.

I've learned that transparent persistence is a complex problem that,
IMO, only a mature framework can deliver in a mature way.  Magma 1.4
brings heightened levels of stability, robustness and performance over
its predecessor.  Applications just run better, faster, with better
memory management, usability and performance.  The change-log has all
of the gory details.  This, combined with the recent release of Cog
2640, IMO, makes Squeak+Magma a fantastic platform.

PS - Even if you don't use Magma for persistence in your own
applications, simply starting an empty database and copying all of
your mcz's to it allows the Squeak IDE to show all "mc versions" and
the "mc origin" of any method as options on the methods menu, very
nice for general development.


More information about the Squeak-dev mailing list