I'm producing an application with a few peculiar internal communication characteristics that make the usual suspects for data storage and transport (Qs and RDBMSs) ill-fitted. I'm wondering whether there is a product out there that matches the following characteristics:
- all data put into it is peristent
- all reads are delivered out of memory
- data is universally available
- data lives where it is most needed
- data is versioned (nice to have)
- updates are transactional (I'd like ACID characteristics)
- data is potentially replicated, but always in sync
- works on windows
- is based on or has bindings for .NET
- is really fast
- is really robust
- is redundant
- is scalable
I'm looking at things like Microsoft codename "Velocity", but I am not sure whether it fits all of the above characteristics. Likewise, Memcached is not a perfect fit either. The current version of this app opts for an RDBMS with a signaling system for inter-system sync, but latency is too high and versioning of the DB is a pain. I need all the robustness, but with none of the trade-offs.