8 repositorios
Guidance on building single-unit applications structured into independent, feature-based modules.
Distinguishing note: Distinct from standard monoliths by emphasizing internal modularity and boundary enforcement.
Explore 8 awesome GitHub repositories matching software engineering & architecture · Modular Monoliths. Refine with filters or upvote what's useful.
This project is a comprehensive educational resource focused on the principles, patterns, and trade-offs required to design scalable, reliable, and high-performance distributed systems. It provides a structured curriculum that covers the fundamental architectural strategies necessary for building modern software infrastructure, ranging from high-level system decomposition to low-level networking and data management. The repository distinguishes itself by offering deep dives into complex architectural patterns, such as microservices-based decomposition, event-driven communication, and command-
A Modular Monolith is an approach where we build and deploy a single application (that's the Monolith part), but we build it in a way that breaks up the code into independent modules for each of the features needed in
This project provides a structured template for building enterprise applications using a modular monolith architecture. It demonstrates how to organize complex business logic into independent, domain-specific modules that remain contained within a single deployment unit. The architecture enforces strict boundaries between components to minimize coupling and complexity. It utilizes domain-driven design principles to map software components directly to real-world business concepts, ensuring that logic remains independent of infrastructure concerns. Communication between these isolated modules i
Provides a structured template for building enterprise applications as modular monoliths.
This project is a collection of software engineering principles and architectural design patterns designed to minimize the mental effort required to understand and maintain source code. It serves as a guide for implementing clean code methodologies and architectural simplification to reduce the overall cognitive load on developers. The framework emphasizes aligning module boundaries and ubiquitous language with business stakeholders to prevent architectural ripple effects. It advocates for balancing service granularity to avoid the overhead of distributed monoliths and suggests favoring objec
Advocates for modular monoliths to avoid the complexity and network overhead of distributed monoliths.
This project is a production-ready starter kit and boilerplate for building multi-tenant software-as-a-service applications using .NET and React. It provides a multi-tenant application framework and a cloud-native infrastructure kit designed to support scalable cloud services. The project distinguishes itself through a modular monolith architecture that organizes business logic into isolated bounded contexts to prevent code entanglement. It implements comprehensive SaaS identity management, including role-based access control, account impersonation, and strict tenant data isolation across the
Utilizes a modular monolith architecture to organize business logic into isolated domain modules.
Este proyecto es una implementación de referencia de patrones de Domain-Driven Design, modelado de dominio funcional y coordinación de estado basada en eventos. Demuestra la aplicación de patrones de diseño estratégicos y tácticos para gestionar requisitos de negocio complejos. La implementación utiliza un modelo de dominio funcional con funciones puras y objetos inmutables para gestionar transiciones de estado y efectos secundarios. Cuenta con una arquitectura de Segregación de Responsabilidad de Comandos y Consultas (CQRS) para separar modelos de lectura y escritura, junto con coordinación basada en eventos para mantener la consistencia a través de límites de negocio autónomos. La base de código incorpora una arquitectura de monolito modular utilizando contextos delimitados (bounded contexts) y capas hexagonales para aislar la lógica central de la infraestructura. El aseguramiento de la calidad se maneja a través de una suite de desarrollo guiado por comportamiento (BDD) que refleja el lenguaje ubicuo para verificar escenarios de negocio y pruebas automatizadas que aplican restricciones arquitectónicas. El proyecto aplica estos patrones a un dominio de gestión de bibliotecas, cubriendo el mantenimiento del catálogo de libros, flujos de trabajo de circulación, validaciones de reservas y seguimiento de préstamos vencidos.
Organizes the system into independent bounded contexts within a single unit to maintain clear boundaries.
Implementation of a bulletproof node.js API 🛡️
Organizes the boot process into small, testable loader files for Express and database setup.
Este proyecto es un framework de diseño de sistemas distribuidos y guía de arquitectura. Proporciona recursos técnicos para diseñar, desplegar y coordinar servicios de red independientes. El framework establece una metodología estructurada para migrar aplicaciones monolíticas a servicios descentralizados separando las preocupaciones de frontend y backend. Sirve como referencia para la arquitectura basada en eventos, centrándose en mantener la consistencia de los datos a través de los límites de la red utilizando el abastecimiento de eventos y registros de transacciones locales. El proyecto cubre una amplia gama de capacidades, incluyendo comunicación de servicios distribuidos, configuración de descubrimiento de servicios y la implementación de puertas de enlace API. También aborda estrategias de despliegue para alta disponibilidad y el uso de intermediación de mensajes asíncronos para desacoplar servicios.
Guidance on converting single-tier applications into distributed services by separating frontend and backend.
This project serves as a comprehensive educational resource for implementing modular monoliths and microservices within .NET environments. It focuses on applying domain-driven design principles to manage complex business logic, providing a structured approach to building systems that can evolve alongside changing requirements. The architecture is defined by its emphasis on modularity and clear boundaries, utilizing vertical slices and bounded contexts to organize code by business process rather than technical layer. It distinguishes itself through a systematic migration framework that allows
Provides comprehensive guidance on building single-unit applications structured into independent, feature-based modules.