Please, advice a distributed platform or architecture that allows having cluster of nodes that stores and processes blobs and have the following restrictions and requirements:
- Blobs must be processed on-the-fly, by request of client (preferrably http). Response time must be less than 100ms. Blob processing algorithm takes 30-50ms (including random reading from 9TB RAID5). So platform must not add more than 50ms of overhead.
- Original blob must be processed on the same physical server where it stored. Otherwise, network will be a bottleneck.
- Reliability must be reached through server-based redundancy (with customizable redundancy level).
- When adding nodes to cluster the platform must redistribute blobs to newly added servers.
- Blob processing algorithms are written in C#, they must be just reused, platform must allow that.
- The platform must allow installation on private servers (cloud is not applicable).
- Great if the platform is windows-based.