The problem in building distributed systems
comes from the need to synchronize the different components
of the system using networks that are prone to faults and attacks. In
every distributed system (e.g. replicated databases or application
server clusters) there are inherent uncertainties about the
current state of remote components. Due to the complexity
of such systems, the construction of a reliable and efficient
distributed system is very difficult.
Drawing from our innovative
research in distributed systems, we create the algorithms,
protocols, and infrastructure tools that enable
the development of correct distributed systems
that scale from one cluster to Internet size.
Our focus is on high performance, high availability, security
and stability. Our tools are designed to encapsulate
the challenging aspects of asynchronous networks
and enable the construction of scalable distributed
applications, allowing our customers to focus
on the differentiating components of their application.
Our technology includes our replication
tools, and the Spread
and Secure
Spread messaging toolkits.