Zope Object Database

Features of the ZODB include: transactions, history/undo, transparently pluggable storage, built-in caching, multiversion concurrency control (MVCC), and scalability across a network (using ZEO).

Initially, it began as a simple Persistent Object System (POS) during the development of Principia, which later evolved into Zope.

ZODB supports concurrent transactions using MVCC and tracks changes to objects on a per-object basis.

In Python, this could be represented the following way: If the variable mycar is the root of persistence, then: This puts all of the object instances (car, wheel, screws etc.)

There is no declaration of the data structure in either Python or ZODB, so new fields can be freely added to any existing object.

In the example above, carzz.wheel3 = something is a modification automatically tracked down by the ZODB machinery, because carzz is of (Persistent) class Car.

Network Storage (also known as ZEO) enables multiple Python processes to load and store persistent instances concurrently.

Directory Storage stores each persistent data as a separate file on the filesystem, similar to FSFS in Subversion.

Zope Replication Services (ZRS) is a commercial failover add-on, open-sourced since May 2013, that eliminates the single point of failure, providing hot backup for writes and load-balancing for reads.