Que es un Bounded Context? . Esta es una pregunta bastante habitual cuando nos encontramos trabajando con Domain Driven Design . El uso de Bounded Context o contextos limitados hace referencia a una buena práctica a nivel de diseño que cada día esta más en uso. Vamos a explicar de que se trata. Normalmente cuando nosotros trabajamos sobre Domain Driven Design lo que construimos es un diagrama de clases o diagrama de dominio sobre la base de datos que tenemos construida.
Domain Driven Design
Normalmente cuando trabajamos con Domain Driven Design el modelo de tablas y el modelo de clases no es idéntico ya que las clases permitan una mayor flexibilidad. Así pues basado en el modelo anterior podemos construir el siguiente modelo de clases:
Cuando los modelos de clases crecen llega un momento que su tamaño es excesivo y uno de los patrones de diseño que se implementa es el de Bounded Context por el cual el modelo se divide en “submodelos” cada uno expecializado en un area. Por ejemplo en nuestro caso podría ser que una parte del modelo se encargará de dar de alta nuevos clientes en la aplicación y otra parte del modelo se encargará de gestionar las compras de cada cliente.
Bounded Context y Limites
Cuando el modelo de dominio se separa siempre quedan lo que se denominan los límites . ES decir por ejemplo cuando gestionamos el contexto A más orientado a Personas es posible que necesitemos tener un conocimiento muy genérico de que esa persona realiza compras y la clase que se implemente será algo como:
En cambio en el Bounded ContextB probablemente tendremos una clase mucho más compleja que tendrá relaciones :
MicroServicios y Bounded Context
Antiguamente este patrón de diseño se usaba de forma puntual en algunos proyectos pero con la llegada de los MicroServicios su uso se está extendiendo ya que cada MicroServicio tendrá un Bounded Context asociado.