I am looking at the IA for a hypothetical application scenario, for example:
- A high demand application such as an online ticketing website where there can be demand for 100,000 tickets to be purchased per minute. At the same time the number of tickets needs to be tracked accurately so that they are not oversold (so I'm thinking to maintain the ticket count in memory).
I am thinking the less time critical tasks can be queued or deferred, ie email confirmation, and then write everything to the physical DB after the ticket purchase transaction is complete.
The only risk with in memory I believe is if the software/hardware fails, but I believe there may be some clustered options with some IMDB providers so that they are failsafe.
I have considered horizontal scaling/sharding with regular RDBMS but I am worried about the costs. I'd love to hear some thoughts if anybody has dealt with similar scenarios and if they used IMDB or something else?