It seems to me that the CQRS (Command and Query Responsibility Segregation) approach might be suitable for implementing a robust and responsive social application server on GAE, because:
- CQRS doesn't require a SQL database (which GAE doesn't provide)
- It does require a database capable of holding serialised objects, which GAE does in fact provide
- It requires event queues, which GAE also provides
- It supports a non-blocking, asynchronous, message based architecture, which neatly works round GAE's limitations on long-running transactions
- It is advertised as being highly scalable, which is after all why optimists choose GAE
The trouble is, I'm a rusty Java programmer with little experience relevant to this choice, and I would very much appreciate any comments from anyone who has used the two together, or at least investigated using one from the experience of using the other.
I think that my main questions are:
- Is CQRS over-complex for the early stages of a new application?
- Are there any booby-traps that would make them a poor match, such as such as GAE's Datastore perhaps not being a good match to CQRS requirements?
- Can anyone recommend either Axon or Jdon as being particularly suitable (or unsuitable) for GAE?
- What other questions should I be asking?