Synchronous Database Caching
Most web applications that I've dealt with follow a common pattern of presentation layer that is clustered, and needs access to a transactional, shared, persistent store with transactional semantics, a.k.a. "the Database."
Unfortunately, the success of SQL and databases that support it, and lack of useful alternatives has meant that SQL is often used as a programming API, and the database becomes a data message bus between nodes in a cluster.
This works out particularly badly in so-called on-line transaction processing (OLTP) in which many small transactions are going on all the time.
As I worked with Toshi Matsushima and Warlu Kothapalli, we were able to develop a technique for synchronous caching which completely preserves transactional semantics of the database while drastically improving throughput for all cases, and this became the subject of a patent.
One particular difficulty of caching in financial systems is that if clustering is used, the financial company cannot afford a solution which either contains stale data, or has a race condition which gives access to new data on one node before another node for an arbitrary reason. We were able to create a solution which surprisingly guarantees that no node will have a bias over the other nodes, and is therefore useful in financial systems.
Fitech developed this technology further, and has delivered additional systems based on this technology, which continues to out-perform alternatives such as Oracle's "Times 10" technology. .