6 repositorios
Educational materials covering the design trade-offs and implementation patterns of various inter-service communication protocols.
Distinguishing note: Focuses on the architectural comparison and usage patterns of RPC frameworks like gRPC within distributed systems.
Explore 6 awesome GitHub repositories matching software engineering & architecture · Communication Protocols. 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-
gRPC is a modern open-source high-performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancin
This project is a service mesh platform designed to manage, secure, and observe service-to-service communication within Kubernetes clusters. It functions as a control plane that orchestrates transparent sidecar proxies, which intercept and manage network traffic to provide reliable connectivity for microservices. By automating the injection of these proxies, the platform ensures that infrastructure-level policies are applied consistently across all workloads without requiring manual configuration changes. The platform distinguishes itself through its focus on zero-trust security and cross-clu
Overrides automatic protocol detection by explicitly defining the communication protocol for specific service ports.
This project is a decentralized, privacy-focused messaging platform designed to eliminate reliance on central servers and persistent user identifiers. By utilizing a metadata-minimizing protocol, it ensures that all communication remains end-to-end encrypted and that user identities are stored exclusively on the local device. The architecture relies on relay-based message routing and identity-free network addressing to maintain data sovereignty and prevent the correlation of user activity. What distinguishes this platform is its commitment to traffic isolation and anonymity. Each conversation
Structures communication protocols to avoid exchanging persistent identifiers or global user IDs during message delivery.
Este proyecto es un framework de integración que arranca servicios de llamada a procedimiento remoto (RPC) de Apache Dubbo dentro de aplicaciones Spring Boot. Sirve como un framework de comunicación de microservicios que permite la implementación de servicios RPC, descubrimiento de servicios y gobernanza distribuida mediante configuración automatizada. El proyecto se distingue por proporcionar un puente RPC entre lenguajes, permitiendo que servicios escritos en diferentes lenguajes se comuniquen mediante estándares como gRPC y Protobuf. Además, permite la exposición de microservicios backend como endpoints REST utilizando el protocolo Triple para acceso directo desde navegadores web y clientes de terceros. El framework cubre una amplia gama de capacidades, incluyendo gobernanza de servicios distribuidos para enrutamiento de tráfico y limitación de tasa (rate limiting), gestión centralizada de configuración y observabilidad de microservicios para el rastreo de solicitudes y monitoreo de salud. También admite diversas capas de transporte e integraciones de almacenamiento para Redis y Memcached. El proyecto proporciona starters y configuraciones para automatizar el arranque de la infraestructura RPC dentro del entorno Spring Boot.
Allows switching between transport protocols such as gRPC, HTTP/2, and TCP via configuration.
GlusterFS es un sistema de archivos distribuido definido por software y un clúster de almacenamiento escalable que agrega recursos de disco de múltiples servidores en un único espacio de nombres global. Funciona como una plataforma de almacenamiento unificada, permitiendo que los mismos datos subyacentes se expongan a través de interfaces de almacenamiento de archivos, bloques y objetos. El sistema se distingue por una arquitectura descentralizada que utiliza hashing consistente para distribuir archivos a través de nodos de red sin un servidor de metadatos central. Asegura la integridad y disponibilidad de los datos utilizando replicación de autocuración, consistencia basada en quórum para evitar escenarios de split-brain y georeplicación asíncrona para recuperación ante desastres en sitios geográficos distantes. La plataforma proporciona una amplia cobertura de capacidades a través de exportación de almacenamiento multiprotocolo vía NFS, Samba e iSCSI, así como una gestión integral de volúmenes que incluye instantáneas puntuales, cuotas de almacenamiento y expansión elástica de capacidad. La seguridad se maneja a través de cifrado TLS para datos en tránsito, integración de gestión de identidad y control de acceso POSIX granular. El software está disponible como paquetes binarios a través de repositorios comunitarios para varias distribuciones de Linux.
Allows configuration of the communication protocol between clients and storage processes to optimize transfer speeds.
Faye es un middleware de mensajería en tiempo real y un servidor de publicación-suscripción (pub-sub) basado en WebSockets. Funciona como una capa de comunicación que enruta mensajes entre clientes y gestiona suscripciones a canales para permitir la sincronización de datos en la web. El proyecto proporciona una pasarela de comunicación entre dominios, permitiendo que clientes web en diferentes dominios se comuniquen con un servidor central. Está construido como un backend de mensajería en clúster que puede compartir el estado entre múltiples instancias utilizando almacenamiento externo para manejar grandes volúmenes de conexiones de red persistentes. Su superficie de capacidades incluye lógica pub-sub para la gestión de canales y enrutamiento de mensajes, junto con una capa de protocolo agnóstica al transporte que soporta tanto WebSockets como long-polling. El sistema incorpora middleware de seguridad para restricciones de acceso en publicaciones y suscripciones, así como la interceptación de tráfico de mensajes para modificar o filtrar datos. Para mantener la estabilidad, el sistema utiliza una recuperación de conexiones basada en latidos (heartbeats) para detectar enlaces caídos y reenviar automáticamente los mensajes perdidos.
Provides configuration mechanisms to select or disable specific transport protocols based on environment capabilities.