Slide's architecture is a matrix of modules, from high-level services to
low-level services and clearly separates functionality around different
aspects (structure, security, locking and versioning).

The high-level interfaces are meant to provide a simple, standardized
way of manipulating a namespace. Underneath these clean interfaces lie
"pluggable" service implementations, which are the low-level services.

There exist tight dependencies between the high-level services because
of the need to enforce security, locking and other contraints throughout
the offered client API.