Hi Ayende,
a few of us were talking in JabbR about using RavenDb in a banking scenario. We'd love to hear about how you might leverage RavenDb in this type of scenario .. nothing too low level, but more high level, seeing what moving parts you would do, overall.
For example, the scenario is a bank that has accounts for medium/large businesses only. These accounts incur credits and debits very frequently. Meaning, people are putting money into the account (as they buy goods from the business) and the business also withdraws money to pay for large invoices, etc.
eg. Mon 1st May, 2012 4:52:32pm; Account# 1234; Deduction: $32.99;
The objective is to make sure we can get an accurate account balance at any given time. If the business accountant needs to pay for a big invoice, is there money in the account? etc.
The issues were we talking about was
1) Do we put the balance into the Document (sorta like a de-normalized sum)?
2) If we have a Map/Reduce Index for the sum, what about it being stale? Lots of writes are occurring across many accounts.
3) Is this a possible candidate for some CQRS?
4) We know RavenDb can handle Optimistic concurrency .. but not sure if we should use it here (out gut feeling was, it should .. but how to handle a conflict?)
and to top this off .. we're also guessing that a bank would generally be having replication and/or sharding in place cause they need to make sure stuff doesn't fall over AND it's scaling.
We believe it can be done .. we're be interested in some guidance from you and your colleges if you have some a moment.
Maybe this could be a catalyst for a community Q/A Webinar?