etcd is a distributed, strongly consistent key-value store that serves as a foundational building block for distributed systems, particularly Kubernetes. In production, it runs as a Raft-based cluster (typically 3-5 nodes) providing gRPC and HTTP APIs for reading, writing, watching, and leasing key-value data. The server persists state via an MVCC engine over bbolt, with a write-ahead log (WAL) and snapshotting for durability and recovery. Key client libraries exist in Go (client/v3), along with CLI tools (etcdctl, etcdutl) and embedded server support. The architecture separates consensus (Raft), storage (MVCC/WAL/backend), API (gRPC/HTTP), and client layers, with extensive observability (Prometheus metrics, OpenTelemetry tracing). External dependencies include bbolt, the etcd-io/raft library, gRPC, protobuf, and Prometheus. While primarily an application/infrastructure project, it also includes research-grade robustness testing with model checking and fault injection, but these are testing tools, not the core purpose.
Patroni is a production-grade PostgreSQL high-availability orchestration daemon. Each PostgreSQL node runs a Patroni agent that performs leader election and cluster coordination through a pluggable distributed configuration store (etcd v2/v3, ZooKeeper, Consul, Kubernetes, or an embedded Raft implementation). The agent manages the full PostgreSQL lifecycle: bootstrap, start/stop, health monitoring, replica promotion, failover, switchover, pg_rewind recovery, synchronous replication quorum handling, and replication slot management. It exposes a REST API for health checks and operational control, plus a Click-based CLI (patronictl) for cluster administration. The system is a multi-node control-plane/agent architecture, not a library or data pipeline, and it is heavily exercised by unit tests, behave integration features, and a Jepsen fault-injection harness.
Traefik is a cloud-native reverse proxy and API gateway that dynamically configures itself from various service discovery backends (Docker, Kubernetes, Consul, etc.). It provides HTTP, TCP, and UDP routing, load balancing, TLS termination, ACME certificate management, a rich middleware chain (auth, rate limiting, compression, headers, etc.), observability (metrics, tracing, access logs), and a plugin system (Yaegi and Wasm). The project is written in Go with a React-based web UI. It supports Kubernetes CRDs (IngressRoute, Middleware, etc.) and the Gateway API. It has extensive integration tests and is actively maintained. The architecture is modular with clear provider interfaces, a configuration watcher that merges dynamic configs from multiple sources, and a hot-swappable handler for live updates.
Jupiter is a governance-oriented microservice framework for Go, developed and used at Douyu. It provides a comprehensive set of components for building production-grade microservices, including multiple HTTP server wrappers (Gin, Echo, fasthttp, GoFrame), gRPC server and client, service discovery via etcd, distributed task scheduling (XXL-JOB), caching (freecache, LRU), configuration management (file, etcd, Apollo, HTTP), structured logging with rotation, Prometheus metrics, OpenTelemetry tracing, and resilience patterns (Sentinel circuit breaker/flow control). The framework also includes a CLI tool for project scaffolding and protobuf code generation plugins for Gin, Echo, error codes, and field masks. The architecture follows a modular, pluggable design with consistent patterns for configuration (StdConfig/RawConfig/Build), lifecycle hooks, interceptor chains, and singleton management. It emphasizes observability and governance out of the box, with built-in health checks, pprof endpoints, and metric export. The codebase is well-structured with extensive unit and e2e tests, though it carries some technical debt from supporting multiple HTTP frameworks and legacy dependencies. While primarily an application framework, it includes reusable utility packages (retry, field mask, load balancing, goroutine management) that can be extracted independently. The framework is actively maintained with regular commits and CI/CD pipelines, but some dependencies are outdated and there is code duplication in log rotation and cache implementations.
This repository provides documentation and automation scripts for setting up a Kubernetes cluster from scratch using VirtualBox. It includes shell scripts for creating and configuring VM images with cloud-init, configuration files for various Kubernetes components (etcd, control plane, worker nodes, HAProxy load balancers), and detailed documentation explaining the setup process. The repository serves as an educational guide for understanding Kubernetes infrastructure components and how they interact, rather than a deployable application itself. The main value lies in the well-structured automation scripts and comprehensive documentation that walk users through building a complete Kubernetes cluster with high availability features.