Domus is both an architecture and a platform for Cluster-oriented Distributed Hash Tables (DHTs). The rationale behind Domus may be found in a set of papers and a PhD thesis (see 1.2 - Publications, bellow).
With Domus, one can operate (deploy, manage and explore) several DHTs at the same time, in a cluster environment (shared or batch-managed), for distributed storage purposes. Domus is not P2P-oriented (though it uses, in its core, some techniques of that domain). Also, in its current development stage, Domus does not yet support Grid environments (planned as future work).
Domus is based on a set of distributed services - the Domus services - that collectively form a "Domus cluster" (a logical concept that should not be confused with the underlying physical cluster). Domus clusters are managed with the help of administrative tools that include advanced facilities like the deactivation and reactivation of entire Domus clusters or the modification of their service composition; this allows to reallocate cluster nodes to other activities without loosing current DHTs content (durability); deactivated Domus clusters may later be fully reactivated.
Domus DHTs are operated as Distributed Dictionaries of generic «key,data» records. Each DHT spans independently across the set of services/nodes of a Domus cluster and may also be independently deactivated or reactivated. Dynamic Hashing is used, which allows for DHTs to better conform to storage or access load fluctuations. Storage and Routing of DHT records are decoupled, allowing an independent choice of the best nodes for each task, accordingly with their base resource capabilities and the resources dynamic availabilities. DHTs may also be configured to tailor specific requisites of client applications; DHT attributes allows for the choice of i) storage media (ram, disk), ii) storage platform (different dictionary implementations), iii) constraints to the cluster node subset that may be used, etc.
Programmers may explore the Domus abstractions by means of a user-level library (with Python and C interfaces) and a set of auxiliary tools. Domus is mainly Python-based, allowing for easy maintenance of the code base and fast development of new Domus client applications (these are, basically, any applications in need of distributed dictionaries, weather purely for storage purposes, parallel access to data or a combination of both).