Ion is a comprehensive concurrency and scheduling toolkit designed for building resilient, high-performance Go applications. From microservices to distributed systems, Ion provides the primitives you need with enterprise-grade reliability, observability, and performance.
Zero dependencies. Context-first. Production-ready.
🚀 Performance: <200ns hot path, 0 allocations in steady state
🔒 Reliability: Deterministic behavior, graceful degradation, comprehensive error handling
📊 Observability: Built-in metrics, tracing, and debugging tools
🔧 Simplicity: Intuitive APIs that scale from prototypes to production
🌐 Enterprise: Battle-tested patterns for distributed systems
Core Primitives
- workerpool - Bounded worker pools with context-aware submission and graceful shutdown
- semaphore - Weighted semaphores with configurable fairness (FIFO/LIFO/None)
- ratelimit - Token bucket, leaky bucket, and multi-tier rate limiters
- observe - Pluggable observability interfaces for logging, metrics, and tracing
Resilience Patterns
- circuit - Circuit breakers with threshold-based state transitions and failure detection
📖 View detailed documentation for each package ↓
Additional Resilience Patterns
- pipeline - Stream processing with fan-in/fan-out and backpressure handling
- scheduler - Delayed execution, cron jobs, and workflow orchestration
Advanced Patterns (v0.3)
- stream - Event stream processing with windowing and exactly-once semantics
- coordination - Leader election, distributed locks, and consensus primitives
- events - Event sourcing with replay, snapshotting, and CQRS patterns
go get github.com/kolosys/ion@latest
import "github.com/kolosys/ion/workerpool"
// Create pool with 4 workers, queue size 20
pool := workerpool.New(4, 20, workerpool.WithName("image-processor"))
defer pool.Close(context.Background())
// Submit tasks
pool.Submit(ctx, func(ctx context.Context) error {
return processImage(ctx, imageID)
})
import "github.com/kolosys/ion/ratelimit"
// Token bucket: 10/sec with burst of 20
limiter := ratelimit.NewTokenBucket(ratelimit.PerSecond(10), 20)
if limiter.AllowN(time.Now(), 1) {
// Process request
}
import "github.com/kolosys/ion/semaphore"
// Database connection pool
dbSem := semaphore.NewWeighted(10, semaphore.WithName("db-pool"))
if err := dbSem.Acquire(ctx, 1); err != nil {
return err
}
defer dbSem.Release(1)
import "github.com/kolosys/ion/circuit"
// Protect external service calls
cb := circuit.New("payment-service", circuit.WithFailureThreshold(5))
result, err := cb.Execute(ctx, func(ctx context.Context) (any, error) {
return paymentService.ProcessPayment(ctx, payment)
})
Ion powers production systems across various domains:
- 🌐 API Gateways: Multi-tier rate limiting, circuit breakers, request routing
- 📊 Data Pipelines: Bounded processing, backpressure handling, error recovery
- ⏰ Background Jobs: Controlled concurrency, graceful shutdown, resource management
- 🔄 Microservices: Service protection, cascading failure prevention, observability
- 🏦 Financial Systems: High-frequency trading, payment processing, risk management
- 🎮 Gaming Platforms: Matchmaking, leaderboards, real-time event processing
Detailed documentation for each Ion component:
-
WorkerPool - Bounded worker pools with context-aware submission
- API Reference, configuration options, best practices
- Performance benchmarks and sizing guidelines
- Examples: Basic usage, error handling, graceful shutdown
-
Semaphore - Weighted semaphores with configurable fairness
- FIFO/LIFO/None fairness modes, resource management patterns
- Database pools, memory limiting, CPU allocation examples
- Integration with context cancellation and timeouts
-
RateLimit - Token bucket, leaky bucket, and multi-tier limiting
- Algorithm comparison, API client protection, queue management
- Multi-tier configuration for API gateways and microservices
- Header-based integration with external rate-limited APIs
-
Observe - Pluggable observability interfaces
- Logger, metrics, and tracer abstractions for any observability stack
- No-op defaults with zero overhead when not configured
- Integration examples: slog, Prometheus, OpenTelemetry
- Circuit - Circuit breakers with automatic failure detection
- State management, failure predicates, recovery testing
- HTTP client protection, database failover, service mesh integration
- Preset configurations for different service reliability patterns
- 🚀 High Performance: <200ns hot path, 1M+ ops/second throughput
- 🔒 Production Ready: 99.99% uptime, zero memory leaks, deterministic behavior
- 📊 Observable: Built-in metrics, tracing, and comprehensive error reporting
- 🎯 Low Latency: <1ms p99 for all operations under load
Ion is evolving into the premier concurrency toolkit for Go. Here's what's coming:
🎯 v0.2 (Q3 2025) - Resilience & Enterprise
- ✅ Circuit breakers with threshold-based state transitions
- Pipeline processing with stream operations
- Task scheduler with workflow orchestration
- Advanced observability and resource management
🚀 v0.3 (Q4 2025) - Advanced Patterns
- Event stream processing with windowing
- Distributed coordination primitives
- Event sourcing with CQRS support
🌟 v0.4 (Q1 2026) - Ecosystem Integration
- Framework adapters (Gin, Echo, gRPC)
- Kubernetes operators and CRDs
- Developer tooling and chaos engineering
- 🎯 Context-First: All operations respect context cancellation and timeouts
- 🚫 Zero-Panic: Library code returns errors, never panics
- 📦 Minimal Dependencies: Core functionality requires zero external dependencies
- 🔌 Pluggable Observability: Optional hooks for logging, metrics, and tracing
- 🎲 Deterministic: Predictable behavior under load, stress, and shutdown
- 🔒 Thread-Safe: All public APIs are safe for concurrent use
- ⚡ Performance-First: Optimized hot paths with minimal allocations
Ion powers production systems processing millions of requests daily across microservices, API gateways, data processing pipelines, financial systems, and gaming platforms.
"Ion enabled us to handle 10x traffic growth with the same infrastructure" - Platform Team Lead
- 📖 Documentation: pkg.go.dev/github.com/kolosys/ion
- 💬 Discussions: GitHub Discussions
- 🐛 Issues: GitHub Issues
- 📧 Enterprise: enterprise@kolosys.com
We welcome contributions! See CONTRIBUTING.md for guidelines.
Licensed under the MIT License.