2011-03-21 9 views
11

Me parece que los CQRS (comando de consulta y Responsabilidad Segregación) enfoque podría ser adecuado para implementar un servidor de aplicación social robusta y sensible en GAE, porque:¿Es CQRS un buen enfoque para implementar una aplicación social en Google App Engine?

  1. CQRS no requiere una base de datos SQL (que GAE no proporciona)
  2. Se requiere una base de datos capaz de contener objetos serializados, que GAE no de hecho proporcionar
  3. requiere colas de eventos, que GAE también proporciona
  4. Es compatible con una no-bloqueo, asíncrona, arquitectura basada en mensajes, que trabaja limpiamente alrededor de la limitación de GAE s en las transacciones de larga duración
  5. Se anuncia como siendo altamente escalable, que es después de todo, ¿por qué eligen los optimistas GAE

El problema es que yo soy un programador de Java oxidado con poca experiencia relevante para esta elección, y agradecería cualquier comentario de cualquier persona que los haya usado juntos, o al menos haya investigado usando uno de la experiencia de usar el otro.

creo que mis principales preguntas son:

  1. Es CQRS demasiado complejas para las primeras etapas de una nueva aplicación?
  2. ¿Hay trampas explosivas que los hagan poco compatibles, como el Datastore de GAE que quizás no sea una buena opción para los requisitos de CQRS?
  3. ¿Alguien puede recomendar Axon o Jdon como particularmente adecuados (o no adecuados) para GAE?
  4. ¿Qué otras preguntas debería estar haciendo?
+0

Ah - acabo de notar una cuestión un tanto superpuesta en http://stackoverflow.com/questions/3781528/end-to-end-example-of-cqrs-implementation-on-top-of-appengine - hay una "correcta" "forma de vincular? –

+0

¿Terminó decidiéndose si CQRS es adecuado para implementar una red social? Puedes profundizar sobre eso ? –

+0

Me quedé atrapado en la aplicación GAE después de crear un prototipo de la interfaz de usuario, así que nunca tuve un resultado, me temo. ¡Pero por favor deje un comentario o respuesta si lo hace y aprenda algo! –

Respuesta

13

CQRS no es demasiado complejo o difícil, pero lleva tiempo adaptar su modo de pensar a las tradicionales solicitudes/respuestas y a las interacciones cliente/servidor que han sufrido nuestros problemas a lo largo de los años.

En CQRS con aprovisionamiento de eventos, el almacén de datos es insignificante porque no requiere mucho de su motor de almacenamiento: el proyecto NEventStore (escrito en C#) puede admitir fácilmente 40-50 tipos diferentes de motores de almacenamiento sin mucho dificultad.

Tanto Amazon Web Services puros como Google App Engine son plataformas excelentes para una aplicación CQRS porque lo guían a todas las opciones correctas de infraestructura: comunicación asincrónica sin bloqueo mediante mensajes.

Nunca he oído hablar de Jdon, pero Axon ha estado presente por un tiempo. Trate de no apoyarse demasiado en el marco. A medida que su comprensión de CQRS se profundice, esto será más evidente, básicamente es como tratar de evitar el uso de Hibernate en todas partes en su código. Solo debe usar Axon (o lo que elija) exactamente donde debe usarse y no más.

Algunas de las mejores preguntas que se pueden hacer se refieren a dónde buscar ayuda y qué recursos hay disponibles para ayudarlo a comprender mejor el CQRS. Hay varios blogs y sitios web buenos, incluido cqrsinfo.com, que pueden ayudarlo a comenzar. Además, el video de seis horas de Greg Young es imprescindible si vas a empezar con CQRS.

+1

Gracias por la respuesta reflexiva, y encontré el video en http://cqrsinfo.com/video/ –

+0

@Jonathan Oliver Como dice el apoyo "asincrónico, sin bloqueo de la comunicación que usa mensajes" de GAE. ¿Me puede guiar cuáles son los servicios de GAE que facilitan esta infraestructura? – Pokuri

+0

@Pokuri La tecnología específica no es lo que estoy promoviendo. Es el estilo de comunicación. –

Cuestiones relacionadas