Cloud storage was just used so I didn't have to manage backups myself.
I absolutely didn't separate command and query - the commands themselves are actions which execute against the domain model, and that domain is used to build responses.
Another thing that gets tricky is making your application deterministic - any calls to the current time, random number or guid generatiom, or to 3rd party services, have to be recorded and replayable in the correct order for when you reconstruct your application instance. This can get tricky if you refactor your application or change its logic later.
It's worth reading up on Prevalence/MemoryImage, and looking into NEventStore also.
I absolutely didn't separate command and query - the commands themselves are actions which execute against the domain model, and that domain is used to build responses.
My project is here: [Sourcery](https://github.com/mcintyre321/Sourcery) but I think a more mature project you might like to look into is [OrigioDB](http://origodb.com/).
Another thing that gets tricky is making your application deterministic - any calls to the current time, random number or guid generatiom, or to 3rd party services, have to be recorded and replayable in the correct order for when you reconstruct your application instance. This can get tricky if you refactor your application or change its logic later.
It's worth reading up on Prevalence/MemoryImage, and looking into NEventStore also.