Domain-Driven Design: Domain Events and BC Integration Webcast at @AtrapaloEng (Spanish)

Siguiendo con la formación de DDD en Atrápalo, os dejo la sesión de formación sobre Domain Events y BC Integration. Que la disfrutéis.

  • martinezdelariva

    Hola!,

    Gracias por compartir la charla, muy interesante.

    Me ha surgido una duda sobre la petición REST a la app de ‘badges’.

    ¿’badges’ solo aceptaría peticiones de la app de ‘wishes’?
    En ddd entiendo que la parte de authorization/authentication encajaría bien en un BC a parte.
    Por tanto en este caso ¿sería el BC de wishes quién comprobaría primero con el BC de auth si puede ejecutar una acción en BC de ‘badges’?

    Espero que tengo sentido mi pregunta.
    Gracias y un saludo,
    Jose.

    • cbuenosvinos

      “Badges” aceptaría peticiones de cualquier BC, para eso es un BC de gamification que se podría liberar y hacer open-source.

      La parte de autenticación encajaría muy bien en un BC a parte (piensa en sistemas centralizados de usuarios tipo OAuth, OpenID, LDAP, etc.)

      Para integrarte con “Badges”, desde cualquier BC deberías usar otro BC tipo OAuth. Piensa en una app que se integra con Github (tira de OAuth). Podrías usar cualquier otro mecanismo, pero lo recomendado es un BC adicional.

      Si no quisieras hacer un BC adicional, deberías añadir la gestión de permisos directamente dentro de “Badges”. ¿Tiene sentido?

      • martinezdelariva

        Después de echar un ojo a IDDD 74-78 me ha quedado más claro. Por tanto tiene sentido un BC a parte para identity-access.

        En el caso de “Badges” y “Wishes”, ambos usarían un tercer BC de auth, ¿no?. En realidad prácticamente todos los BC usarían un BC auth para permisos, ¿no?

        Además, el REST endpoint de “Badges” que usa “Wishes”, sería el mismo endpoint que usarían por ejemplo apps móviles, ya que “Badges” comprueba con el BC auth la identidad/permisos, ¿cierto?

        Gracias,
        Jose.

        • cbuenosvinos

          Cierto. Sólo el matiz de que podrías hacerlo sin el BC de Usuarios si cada BC implementara el suyo correspondiente (pero es más durete mantener la consistencia de los datos)