Al estudiar el diseño controlado por dominio (DDD), me he encontrado con el concepto de subdominio, pero creo que todavía no lo entiendo. Mi primera comprensión de esto fue que un subdominio es un subconjunto del dominio de la aplicación. En otras palabras, es una partición del espacio del problema. He leído que hay tres tipos de subdominio:
- subdominios centrales
- subdominios de apoyo
- subdominios genéricos
Mi comprensión fue algo así: elegimos el dominio de la aplicación, y es bastante complejo. Luego lo miramos y descubrimos una forma de dividirlo en partes más simples, algunas de las cuales serían subdominios centrales y otras serían compatibles, mientras que otras serían genéricas.
Al buscar más información, he encontrado algunas personas que dicen algo diferente: que existe un solo subdominio central, junto con algunos subdominios genéricos y ningún subdominio compatible.
Entonces mis preguntas son:
- ¿Qué son realmente los subdominios ? ¿Es mi primera comprensión la correcta, o es la segunda cosa que leo?
- ¿Cómo es útil esta idea de subdominios?
- ¿Cuáles son algunos buenos criterios para identificar subdominios? ¿Qué debemos tener en cuenta al decidir los subdominios para hacer un mejor uso de esta idea?
EDITAR: Buscando un poco más, encontré lo siguiente:
Piense en un sistema de comercio electrónico. Inicialmente se puede decir que es una aplicación de un contexto de compra. Si observa más de cerca, verá que también hay otros contextos, como Inventario, Entrega, Cuentas, etc.
Esto es lo que inicialmente pensé que era un subdominio. Seleccionamos un dominio (el dominio de compras) y lo desglosamos en subdominios más simples (inventario, entrega, cuentas, etc.). Pero en el texto en cuestión, se refieren a estos como contextos. Entonces, ¿mi comprensión anterior no es subdominios sino contextos?
He encontrado una pregunta aquí en este sitio sobre la diferencia entre un subdominio y un contexto acotado. La respuesta indica que los subdominios son una partición del espacio del problema, mientras que los contextos son particiones del espacio de la solución. Sin embargo, separar el contexto de compra en inventario, entrega, cuentas, etc., no es una partición conceptual. Es decir, ¿está en el espacio del problema en lugar del espacio de la solución?