A collection of high-performance, modular utilities for enhancing testing, transactional consistency, efficiency, security, and stability in cloud-native Go applications.
assert: Provides tools for testing, including utility functions to assert value equality and simplify debugging during development.consistency: Implements transactional log management withEventandEventTypeabstractions, and supports file-based persistence usingJsonFileLoggerfor reliable data storage.efficiency: Offers utilities for generating read-only channels, merging and splitting streams, concurrent processing of channel items, and partitioning key-value stores using shards for scalability and performance.extensibility: Dynamically loads external Go plugins usingLoadPlugin. Just provide a symbol name (e.g., a function) to integrate new features on-the-fly—no rebuilds or redeploys required.logging: Creates a log record consists of a time, a level, a message, and a set of key-value pairs, where the keys are strings and the values may be of any type.messaging: Implements a dispatcher for messaging with publish/subscribe, to decouple local and remote services by using Kafka under the hood as an external dispatcher.resource: Supplies a generic Access[K, V] interface for CRUD operations on key-value pairs, backed by a mock, in-memory and JSON file implementation.security: Includes encryption and decryption with AES-GCM, secure id and key generation, HMAC hashing, bcrypt-based password handling, and a preconfigured secure HTTPS client and server with liveness and readiness probes for robust application security.service: Enhances service orchestration by grouping related functionality, wrapping functions to support context-aware execution and add lifecycle-oriented functionality like signal handling in cloud-native environments.stability: Ensures service robustness with mechanisms like circuit breakers, retries for transient failures, throttling for rate limiting, debounce for execution control, and timeouts for enforcing execution limits.templating: Provides anEnginefor managing templates stored in an embedded filesystem. UseParseto load multiple templates (via glob patterns), andRenderto execute them with custom data.
The repository cloud-native-app offers a concrete application which uses the library’s modules together (rather than only isolated utility examples).
This should help to bridge the gap between “here’s a helper function” and “here’s how it all fits in a service”.
