Rendimiento con Domain Events, Proyecciones y principios de CQRS

Cuando desarrollamos una aplicación nueva, todo va muy rapidito. Hay poco tráfico, pocas queries y si hay alguna más “dura” usamos alguna cache como Memcached o Redis. Pero a medida que agregamos más funcionalidad a una página, el número de queries a base de datos u otras infraestructuras va creciendo. Hasta que sin saber cómo, haces 300 queries, y no es broma, en la ficha de algún producto.

El problema es que estamos acostumbrados a hacer muchas queries de lectura y muy pocas de escritura en estructuras bastante normalizadas. Eso escala mal en base a nueva funcionalidad. Un buen approach en busca del máximo rendimiento es la consistencia eventual, estructuras desnormalizadas y proyecciones.

Os dejo el video de la formación de @AtrapaloEng sobre cómo el uso de Eventos de Dominio y el uso de conceptos de CQRS nos pueden ayudar enormemente a mejorar el rendimiento de nuestras aplicaciones.

  • Xu Ding

    Why not in English?

    • cbuenosvinos

      Training sessions are ran on a weekly basis at Atrapalo Engineering in Spanish. The recording comes from one of those trainings.

      • Xu Ding

        Any English resource you have out there? I have ald purchased your DDD book.

        Cheers,
        Xu

        • cbuenosvinos

          I’ve plan to release some videos in english after the book is finished.

          • Xu Ding

            awesome.

          • Xu Ding

            looking forward to that.

            Regards,
            Xu

  • Juan Pérez

    Muy interesante, gracias por compartirlo. Tengo una duda, si quisieras indicar en el número de opiniones si tu opinión está dentro de ese número (coloreando el número o como sea), optarías por una solución de frontend? haciendo una o varias peticiones con los ids de los wishes para saber si el usuario logueado ha opinado o no? Supongo que esto siempre requiere una petición extra ya que depende del usuario logueado. Gracias

  • Pingback: Blog de Jose Cuéllar | Domain-Driven Design. Episodio V. Services & Domain Events()