Blobs Server-side Backend Interface

The Blobs functionality has the purpose of adding to Soledad the capacity of handling binary objects efficiently. In this case, efficiency means low use of resources (memory, cpu, and time) and storage scalability. The choice of which data storage backend to use for Blobs affects each of these properties in different ways.

The IBlobsBackend Interface is provided so that Soledad Server is agnostic of which data backend is used for Blobs storage. In order to add a new backend, one needs to:

  • implement a backend according to the IBlobsBackend interface,
  • register the new handler in the Twisted-based BlobsResource, and
  • instantiate the Twisted-based BlobsResource using the new handler.

IBlobsBackend Interface

class leap.soledad.server.interfaces.IBlobsBackend[source]

Bases: zope.interface.Interface

An interface for a backend that can store blobs.

There might be concurrent calls to methods that modify the same blob, so it’s the backend implementation’s responsibility to ensure isolation of such actions.