# hwholiday/learning_tools

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hwholiday-learning-tools).**

4,292 stars · 724 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/hwholiday/learning_tools
- Homepage: https://www.hwholiday.com/
- awesome-repositories: https://awesome-repositories.com/repository/hwholiday-learning-tools.md

## Topics

`aes` `auth2` `ddd-example` `discovery` `gin` `go-kit` `golang` `jwt` `micro` `minio` `mongodb` `prometheus` `push` `redis` `rpc-grpc` `signal-protocol` `tcp-socket` `x3dh` `zap`

## Description

This project is a microservice framework for building scalable backend systems in Go. It provides an architecture for distributed systems with integrated support for service discovery, load balancing, and fault-tolerance mechanisms.

The framework distinguishes itself through a domain-driven layered architecture and a remote-first configuration system that synchronizes settings between remote stores and local files with automatic failover. It implements a high-performance communication model using gRPC for unary and streaming data exchange, as well as real-time notification systems for managing persistent client connections.

The system covers a broad range of distributed capabilities, including traffic management via circuit breaking and rate limiting, and observability through distributed tracing, centralized logging, and health monitoring. It also incorporates data infrastructure tools such as probabilistic bloom filters, distributed locking, and token-based service authentication.

The project includes deployment support for containerized Elasticsearch and HBase environments.

## Tags

### Software Engineering & Architecture

- [Microservice Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/distributed-computing-paradigms/microservice-frameworks.md) — Provides a comprehensive framework for building resilient, production-ready distributed microservices in Go. ([source](https://cdn.jsdelivr.net/gh/hwholiday/learning_tools@master/README.md))
- [Go Microservices Architectures](https://awesome-repositories.com/f/software-engineering-architecture/go-microservices-architectures.md) — Implements architectural patterns specifically tailored for building scalable distributed systems using the Go language.
- [Resilience Patterns](https://awesome-repositories.com/f/software-engineering-architecture/resilience-patterns.md) — Implements essential stability patterns including circuit breaking and rate limiting. ([source](https://github.com/hwholiday/learning_tools/blob/master/README.md))
- [Service Discovery Registries](https://awesome-repositories.com/f/software-engineering-architecture/service-discovery-registries.md) — Maintains a dynamic registry of active service instances and health status for cluster-wide discovery.
- [Etcd Integrations](https://awesome-repositories.com/f/software-engineering-architecture/service-discovery-registries/etcd-integrations.md) — Enables service instance registration and availability tracking using Etcd for distributed cluster traffic balancing. ([source](https://github.com/hwholiday/learning_tools))
- [Domain-Driven Designs](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/domain-driven-designs.md) — Provides architectural support for aligning software design with business domains through layered organization. ([source](https://cdn.jsdelivr.net/gh/hwholiday/learning_tools@master/README.md))
- [Task Execution Engines](https://awesome-repositories.com/f/software-engineering-architecture/task-execution-engines.md) — Ships a task execution engine that decouples job submission from processing via persistent worker pools. ([source](https://github.com/hwholiday/learning_tools))
- [Worker Pool Models](https://awesome-repositories.com/f/software-engineering-architecture/worker-pool-models.md) — Implements a worker-pool execution model to process tasks asynchronously and increase system throughput.

### Data & Databases

- [gRPC Data Streaming](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/grpc-data-streaming.md) — Provides high-performance bidirectional and server-side data streaming using the gRPC protocol. ([source](https://github.com/hwholiday/learning_tools/blob/master/README.md))

### Development Tools & Productivity

- [Layered Architectures](https://awesome-repositories.com/f/development-tools-productivity/code-organization/layered-architectures.md) — Employs a domain-driven layered architecture to isolate core business logic from technical infrastructure.
- [External Configuration Loading](https://awesome-repositories.com/f/development-tools-productivity/external-configuration-loading.md) — Loads application settings from external remote sources to update system behavior without restarts. ([source](https://github.com/hwholiday/learning_tools/tree/master/hconfig))
- [Remote Configuration Synchronization](https://awesome-repositories.com/f/development-tools-productivity/remote-file-synchronization/remote-configuration-synchronization.md) — Synchronizes application settings between remote stores and local files with automatic failover.

### DevOps & Infrastructure

- [Dynamic Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/dynamic-configuration-management.md) — Synchronizes application settings between remote stores and local files with automatic failover and reloading.
- [Registry-Based Balancing](https://awesome-repositories.com/f/devops-infrastructure/load-balancing-strategies/client-side-load-balancing/registry-based-balancing.md) — Distributes requests across healthy service instances based on real-time registration data and heartbeats. ([source](https://github.com/hwholiday/learning_tools))
- [Distributed Locks](https://awesome-repositories.com/f/devops-infrastructure/distributed-locks.md) — Provides global locks to coordinate access to shared resources across multiple service instances. ([source](https://cdn.jsdelivr.net/gh/hwholiday/learning_tools@master/README.md))
- [Service Scaling](https://awesome-repositories.com/f/devops-infrastructure/infrastructure/private-enterprise-management/self-hosted-services/self-hosted-api-services/service-scaling.md) — Automatically adjusts the number of running service instances to match workload demand. ([source](https://github.com/hwholiday/learning_tools/tree/master/istio))
- [Request Rate Limiting](https://awesome-repositories.com/f/devops-infrastructure/request-rate-limiting.md) — Prevents system overload by capping the number of incoming requests using rate-limiting patterns. ([source](https://github.com/hwholiday/learning_tools/tree/master/go-kit))

### Networking & Communication

- [Middleware-Based Request Pipelines](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines.md) — Implements modular request pipelines to intercept and process network traffic for cross-cutting concerns.
- [Inter-Service RPCs](https://awesome-repositories.com/f/networking-communication/grpc-microservices-integration/grpc-event-communication/inter-service-rpcs.md) — Uses gRPC unary and streaming calls to exchange structured data between distributed backend services.
- [Load Balancers](https://awesome-repositories.com/f/networking-communication/load-balancers.md) — Distributes incoming network traffic across healthy service instances using various load distribution algorithms. ([source](https://github.com/hwholiday/learning_tools/blob/master/README.md))
- [gRPC Service Implementations](https://awesome-repositories.com/f/networking-communication/polyglot-client-support/grpc-implementations/grpc-service-implementations.md) — Implements gRPC service definitions and code generation for high-performance inter-service communication. ([source](https://github.com/hwholiday/learning_tools/tree/master/grpc))
- [Service Address Resolution](https://awesome-repositories.com/f/networking-communication/service-address-resolution.md) — Maps standardized logical naming conventions to network addresses to locate services across a cluster namespace. ([source](https://github.com/hwholiday/learning_tools/tree/master/istio))
- [Service Communication Libraries](https://awesome-repositories.com/f/networking-communication/service-communication-libraries.md) — Provides libraries for routing and serializing requests between internal microservice components. ([source](https://github.com/hwholiday/learning_tools/tree/master/go-kit))
- [Push Notification Managers](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/web-push-notifications/push-notification-managers.md) — Coordinates a gateway and logic server to manage real-time connections and delivery of push notifications. ([source](https://github.com/hwholiday/learning_tools))
- [Gateway-Based Request Routings](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing/internal-microservice-request-routings/gateway-based-request-routings.md) — Implements routing rules at the API gateway to direct external requests to specific versions of internal services. ([source](https://github.com/hwholiday/learning_tools/tree/master/istio))
- [Real-Time Message Push](https://awesome-repositories.com/f/networking-communication/real-time-message-push.md) — Manages persistent connections to push real-time updates and notifications to clients via Go-based gateways.
- [Tracing Context Propagation](https://awesome-repositories.com/f/networking-communication/tracing-context-propagation.md) — Injects and extracts distributed tracing headers across network boundaries to maintain request correlation. ([source](https://github.com/hwholiday/learning_tools/tree/master/hlog))
- [Circuit Breakers](https://awesome-repositories.com/f/networking-communication/traffic-management-gateways/circuit-breakers.md) — Protects the system from cascading failures by stopping requests to dependencies that become unresponsive. ([source](https://github.com/hwholiday/learning_tools/tree/master/go-kit))

### Security & Cryptography

- [Identity Token Services](https://awesome-repositories.com/f/security-cryptography/identity-token-services.md) — Uses cryptographically signed tokens to authenticate users and verify the origin of requests to service endpoints. ([source](https://github.com/hwholiday/learning_tools/tree/master/go-kit))
- [Token-Based Authentication](https://awesome-repositories.com/f/security-cryptography/token-based-authentication.md) — Secures service endpoints using cryptographic tokens to verify identity and request origins.

### Web Development

- [Service Middleware Pipelines](https://awesome-repositories.com/f/web-development/request-middleware-pipelines/service-middleware-pipelines.md) — Implements composable middleware pipelines to handle cross-cutting concerns like logging, authentication, and tracing. ([source](https://github.com/hwholiday/learning_tools))

### System Administration & Monitoring

- [Centralized Logging Systems](https://awesome-repositories.com/f/system-administration-monitoring/centralized-logging-systems.md) — Aggregates and indexes logs from distributed service components to enable efficient troubleshooting. ([source](https://github.com/hwholiday/learning_tools/tree/master/go-kit))
- [Application Logging](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/telemetry-and-log-collectors/application-logging.md) — Provides application-level logging with automatic file rotation and request context tracking. ([source](https://github.com/hwholiday/learning_tools))
- [Distributed Observability Systems](https://awesome-repositories.com/f/system-administration-monitoring/distributed-observability-systems.md) — Provides a unified observability environment for tracking requests and identifying bottlenecks via distributed tracing.
- [Distributed Tracing](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/distributed-tracing-execution-analysis/distributed-tracing.md) — Tracks requests across multiple services using unique identifiers to analyze latency and execution flow. ([source](https://github.com/hwholiday/learning_tools))
- [Service Health Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/service-health-monitoring.md) — Tracks the operational status and performance of internal application services via health check interfaces. ([source](https://github.com/hwholiday/learning_tools/tree/master/go-kit))
