Aunque fuimos promotores iniciales de los microservicios y hemos visto el patr¨®n utilizado con ¨¦xito en una gran variedad de sistemas, tambi¨¦n hemos observado la aplicaci¨®n incorrecta y el abuso de los microservicios, a menudo como resultado de la Envidia de microservicios. En lugar de comenzar un nuevo sistema con una colecci¨®n de procesos desplegados por separado, a menudo es aconsejable empezar con un monolito bien estructurado y descomponerlo en unidades desplegables de manera independiente cuando la aplicaci¨®n llega al nivel en que los beneficios de los microservicios superen la complejidad adicional inherente en los sistemas distribuidos. Recientemente hemos visto un resurgir del inter¨¦s en esta aproximaci¨®n y una definici¨®n m¨¢s detallada de qu¨¦, exactamente, constituye un monolito bien estructurado. es un framework que te ayuda a estructurar tu c¨®digo de forma que sea m¨¢s f¨¢cil descomponerlo en microservicios cuando llegue el momento adecuado. Proporciona una manera de modularizar tu c¨®digo de modo que los conceptos l¨®gicos de dominios y contextos acotados (bounded context) se alineen con los conceptos f¨ªsicos de archivos y estructura de paquetes. Esta alineaci¨®n facilita la refactorizaci¨®n del monolito cuando sea necesario, as¨ª como testear los dominios de manera aislada. Spring Modulith proporciona un mecanismo de eventos dentro del proceso que ayuda a desacoplar a¨²n m¨¢s los m¨®dulos dentro de una ¨²nica aplicaci¨®n. Lo mejor de todo es que se integra con ArchUnit y para automatizar la verificaci¨®n de sus reglas de dise?o orientadas a dominio.

