Мне кажется, что подход CQRS (разделение ответственности за выполнение команд и запросов) может подойти для реализации надежного и отзывчивого сервера социальных приложений в GAE, потому что:
- CQRS не требует базы данных SQL (которую GAE не предоставляет)
- Для этого требуется база данных, способная хранить сериализованные объекты, которые GAE фактически предоставляет.
- Для этого требуются очереди событий, которые также предоставляет GAE.
- Он поддерживает неблокирующую, асинхронную архитектуру, основанную на сообщениях, которая четко обходит ограничения GAE на длительные транзакции.
- Он рекламируется как хорошо масштабируемый, поэтому оптимисты выбирают GAE.
Проблема в том, что я ржавый Java-программист с небольшим опытом, относящимся к этому выбору, и я был бы очень признателен за любые комментарии от любого, кто использовал их вместе или, по крайней мере, исследовал использование одного из опыта использования другого.
Я думаю, что мои основные вопросы:
- Является ли CQRS слишком сложной для ранних стадий нового приложения?
- Существуют ли какие-либо ловушки, из-за которых они не подходят, например, хранилище данных GAE, возможно, не соответствует требованиям CQRS?
- Может ли кто-нибудь порекомендовать либо Axon, либо Jdon как особенно подходящий (или неподходящий) для GAE?
- Какие еще вопросы я должен задать?