14 repositorios
Educational content on decomposing applications and managing microservice communication.
Distinguishing note: Focuses on the architectural patterns for microservices rather than specific microservice frameworks.
Explore 14 awesome GitHub repositories matching software engineering & architecture · Microservices Design Patterns. Refine with filters or upvote what's useful.
Este proyecto es un recurso educativo integral y una guía de estudio centrada en la arquitectura de sistemas distribuidos y el diseño de infraestructura backend. Proporciona un plan de estudios estructurado para dominar los principios de escalabilidad, confiabilidad y rendimiento necesarios para diseñar sistemas de software complejos. El repositorio se distingue por ofrecer un enfoque metódico para la preparación de entrevistas técnicas, incorporando patrones de diseño, compensaciones arquitectónicas y herramientas de repetición espaciada para ayudar a los usuarios a retener conceptos complejos. Enfatiza el análisis basado en restricciones, enseñando a los usuarios cómo evaluar requisitos competitivos como latencia, consistencia y disponibilidad al redactar diseños arquitectónicos. El contenido cubre un amplio espectro de capacidades de diseño de sistemas, incluyendo estrategias para el escalado de bases de datos, gestión de tráfico y optimización de infraestructura. Detalla técnicas para el escalado horizontal, almacenamiento en caché multicapa, comunicación asíncrona y descubrimiento de servicios, al tiempo que proporciona marcos para realizar estimaciones de recursos y planificación de capacidad. La documentación está organizada como una guía de estudio, ofreciendo un camino sistemático a través de los fundamentos de la ingeniería backend y el diseño de sistemas a gran escala.
Provides educational content on decomposing applications and managing microservice communication.
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-
Explains how to decompose monolithic applications and manage microservice communication and consistency.
This project provides a framework for managing multi-agent systems, designed to automate complex software development, infrastructure, and business workflows. It functions as a multi-agent workflow orchestrator that routes tasks to domain-specific workers while maintaining state persistence and infrastructure automation. By leveraging large language models, the system decomposes high-level objectives into actionable plans, ensuring that complex operations are executed with consistency and reliability. The framework distinguishes itself through its hierarchical agent registry and policy-driven
Designs resilient distributed systems by managing microservice decomposition and inter-service orchestration.
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
Outlines design patterns for balancing microservice granularity to prevent distributed monolith overhead.
Awesome Fenix is an open-source reference project and comprehensive guide that traces the evolution of software architecture from monolithic systems through microservices, service meshes, and serverless patterns. At its core, it provides a working bookstore application implemented in multiple architectural styles, allowing developers to study the trade-offs and migration paths between each approach through runnable code examples. The project distinguishes itself by treating infrastructure as disposable and reproducible, using Docker and Kubernetes to hide distributed complexity while enabling
Covers practical patterns for service discovery, load balancing, fault isolation, and distributed transactions in microservices.
Hyperf is a high-performance PHP coroutine framework designed for building microservices and middleware. It utilizes non-blocking coroutines to handle high concurrency and low-latency request processing, providing a foundation for scalable distributed systems. The framework is distinguished by an aspect-oriented programming based dependency injector that enables pluggable components and meta-programming. It includes a coroutine-optimized object-relational mapper with integrated model caching and an orchestration toolkit for microservice governance, featuring service discovery, circuit breaker
Provides a comprehensive toolkit for microservice governance including circuit breakers, service discovery, and distributed tracing.
This project is a comprehensive learning path for C# backend development, designed to guide developers through the skills and technologies required to build professional server-side applications. It serves as a technical curriculum focused on the .NET ecosystem. The roadmap specifically emphasizes cloud-native development and microservices architecture. It provides a structured guide to the tools and patterns necessary for designing distributed systems and deploying scalable services to the cloud. The content covers broader domain areas including backend career planning and the engineering p
Provides detailed educational content on decomposing monolithic applications into microservices and managing their communication.
Este proyecto es una implementación de referencia y un plano arquitectónico para construir sistemas distribuidos utilizando el framework go-zero. Proporciona un boilerplate completo de microservicios y una estructura de proyecto estandarizada para arrancar servicios API y RPC con estructuras de carpetas consistentes. La implementación se distingue por proporcionar una guía completa y una base de código para el descubrimiento de servicios, limitación de tasa (rate limiting) y disyuntores (circuit breaking). Demuestra una integración de stack de observabilidad que coordina el rastreo distribuido, la recolección de métricas y el registro centralizado de logs a través de múltiples microservicios. El sistema cubre una amplia gama de capacidades distribuidas, incluyendo mensajería asíncrona mediante un modelo de publicación-suscripción, gestión de transacciones distribuidas para la consistencia de datos y un patrón de agregación de gateway para separar las solicitudes externas de la comunicación interna. También incluye generación automática de código a partir de definiciones y pipelines de entrega continua para el despliegue en contenedores.
Provides a stability suite incorporating circuit breakers and rate limiting to protect services from cascading failures.
Armeria es un framework de microservicios basado en Netty utilizado para construir servicios asíncronos de alto rendimiento. Funciona como un servidor RPC multiprotocolo capaz de exponer servicios gRPC, Thrift y REST en un único puerto unificado. El proyecto se distingue por su capacidad para ejecutar diversos protocolos de comunicación simultáneamente y su consola web de depuración RPC integrada, que permite el descubrimiento e invocación de llamadas a procedimientos remotos mediante JSON. También incluye un transcodificador de gRPC a JSON para permitir la compatibilidad de clientes web con servicios Protobuf. El framework proporciona un conjunto integral de capacidades de microservicios, incluyendo clientes RPC reactivos con disyuntores (circuit breakers) y reintentos, balanceo de carga del lado del cliente e integración de descubrimiento de servicios con DNS, ZooKeeper y Consul. Además, cubre la observabilidad de sistemas distribuidos mediante la recopilación de métricas, rastreo distribuido y documentación interactiva de servicios. Armeria admite la incrustación de contenedores de servlets heredados y se integra con frameworks web de terceros para permitir la coexistencia dentro de un único proceso de servidor.
Combines circuit breakers, client-side load balancing, and health checks to ensure microservice system stability.
Este proyecto es una colección de implementaciones de referencia y proyectos de demostración que abarcan visión artificial, automatización DevOps, sistemas distribuidos y microservicios basados en Java. Proporciona una biblioteca de referencia de programación y ejemplos prácticos para crear aplicaciones del lado del servidor, contenerizar servicios y orquestar clústeres. El repositorio incluye un conjunto completo de herramientas para la automatización DevOps, incluyendo scripts y playbooks para pipelines de CI/CD e instalación automatizada de clústeres. Contiene un proyecto de demostración de visión artificial para detección de objetos y análisis facial, así como guías detalladas y archivos de configuración para la contenerización con Docker y el despliegue en Kubernetes. El proyecto cubre una amplia gama de capacidades de sistemas distribuidos, incluyendo la implementación de gRPC y API RESTful, colas de mensajes y streaming de datos. También aborda la observabilidad de la infraestructura mediante trazado distribuido y monitoreo del rendimiento del sistema, junto con el procesamiento de big data y la optimización del almacenamiento de datos. El código base incluye ejemplos de implementación para Java y Go, proporcionando código fuente para la compilación de binarios nativos y builds de contenedores multietapa.
Implements resiliency patterns such as circuit breakers and API gateways to ensure distributed system reliability.
InternetArchitect es una colección educativa de documentos y código fuente diseñada como un curso de arquitectura de alta concurrencia. Sirve como una guía de implementación de sistemas distribuidos, proporcionando patrones técnicos y ejemplos prácticos para diseñar arquitecturas de internet escalables que mantengan la estabilidad bajo cargas de tráfico pesadas. El proyecto se centra en la optimización de bases de datos de alto rendimiento y patrones de diseño de microservicios. Cubre estrategias para reducir la latencia y aumentar el rendimiento a través de sharding de bases de datos y capas de proxy, así como la coordinación del estado global a través de clústeres distribuidos. El alcance arquitectónico incluye estrategias de almacenamiento en caché multinivel para acelerar la recuperación de datos y la implementación de frameworks de descubrimiento de servicios para gestionar la comunicación entre microservicios desacoplados. También aborda la coordinación de estado distribuido y el uso de mallas de balanceo de carga para distribuir el tráfico de red a través de servidores backend.
Provides architectural strategies for decomposing applications and coordinating global state across distributed microservice clusters.
This project is an educational curriculum and architectural framework for building autonomous AI agents and multi-agent systems. It provides a structured learning path focused on the development of independent software components capable of planning, executing tasks, and utilizing external tools to achieve high-level goals. The framework emphasizes multi-agent system orchestration through distributed architectures where specialized agents collaborate using standardized communication protocols. It details specific design patterns such as dual-memory systems for maintaining short-term plans and
Implements architectural patterns for decomposing agent systems into microservices with service discovery and messaging.
The Accidental CTO is a comprehensive collection of guides and frameworks focused on distributed systems architecture, resilience engineering, and system observability. It provides strategies for scaling applications from thousands to millions of users while maintaining high availability. The project offers specific methodologies for managing data volume through replication, sharding, and caching. It includes a framework for analyzing cloud infrastructure spending and evaluating transitions to self-hosted environments to reduce operational expenses. The resource covers the implementation of
Implements resiliency and observability patterns, including distributed tracing and circuit breakers, to ensure reliability.
Este repositorio sirve como referencia técnica para diseñar software escalable, resiliente y de alto rendimiento en entornos de servicios distribuidos. Proporciona una colección de patrones arquitectónicos y estrategias estructurales destinados a guiar el desarrollo de sistemas complejos y desacoplados que mantengan una alta disponibilidad e integridad de datos bajo cargas pesadas. El recurso se centra en los principios fundamentales de la arquitectura de microservicios, ofreciendo orientación sobre la gestión de la comunicación entre componentes de software independientes mediante mensajería síncrona y asíncrona. Detalla estrategias para mantener la consistencia distribuida e implementar protocolos de coordinación para asegurar que los datos permanezcan sincronizados a través de múltiples nodos de red. La documentación cubre una amplia gama de capacidades de diseño de sistemas, incluyendo técnicas para la optimización del rendimiento de bases de datos como indexación, particionamiento y almacenamiento en caché. También describe prácticas de diseño tolerantes a fallos, incluyendo balanceo de carga y estrategias de recuperación automatizada, para garantizar la fiabilidad del sistema cuando fallan componentes individuales.
Details patterns for managing communication between independent microservice components.