A system and techniques are described for managing key-value pairs using
an architecture that does not restrict its users to any specific platform
or storage subsystem. According to one aspect of the invention, the
repository is portable in that the architecture need not change based on
the environment and platform in which the repository is used. Rather, the
portion of the architecture that is platform-specific is limited to
plug-ins at a storage abstraction layer of the repository. The plug-ins
expose the same storage abstraction interface to the other layers of the
repository, but are implemented to interact with different platforms and
storage subsystems. Consequently, in response to being ported from one
platform to another, the repository may simply change the plug-in to
invoke for persistent storage operations.