Roadmap¶
This page outlines the current status and future plans for Go Overlay.
Implemented Features¶
The following features are currently implemented and available:
- ✅ Service Orchestration: Start, stop, and manage multiple services from a single configuration file
- ✅ Dependency Management: Define service dependencies with
depends_onto control startup order - ✅ Graceful Shutdown: Proper signal handling (SIGTERM) with configurable timeouts before SIGKILL
- ✅ Health Monitoring: Monitor service health and automatically restart failed services
- ✅ Critical Services: Mark services as required to trigger system shutdown on failure
- ✅ Pre/Post Scripts: Execute scripts before service start and after service stop
- ✅ User Switching: Run services as specific users for security isolation
- ✅ CLI Interface: Command-line interface for service management via IPC
- ✅ TOML Configuration: Simple, readable configuration format
- ✅ Configurable Timeouts: Fine-grained control over shutdown, startup, and script timeouts
- ✅ Wait Delays: Configure delays between service starts with
wait_after - ✅ Circular Dependency Detection: Prevent configuration errors with automatic detection
- ✅ Service States: Clear state management (PENDING, STARTING, RUNNING, STOPPING, STOPPED, FAILED)
- ✅ Docker Integration: Designed for container environments with proper signal handling
- ✅ Auto-installation: Automatic CLI installation to system PATH
Planned Features¶
High Priority¶
Features planned for the next major releases:
Environment Variable Management¶
- Description: Enhanced environment variable handling for services
- Details:
- Support for
.envfile loading - Environment variable substitution in configuration
- Per-service environment isolation
- Template variables for common patterns
- Use Case: Simplify configuration management across environments (dev, staging, production)
Service Restart Policies¶
- Description: Configurable restart behavior for failed services
- Details:
- Restart policies:
always,on-failure,unless-stopped,never - Configurable restart delays and backoff strategies
- Maximum restart attempt limits
- Restart window tracking
- Use Case: Improve resilience for transient failures without manual intervention
Health Check Endpoints¶
- Description: Active health checking for services
- Details:
- HTTP/TCP health check support
- Configurable check intervals and timeouts
- Health check retries before marking as failed
- Custom health check commands
- Use Case: Proactive detection of unhealthy services beyond process monitoring
Logging Enhancements¶
- Description: Improved logging and output management
- Details:
- Per-service log files with rotation
- Structured logging (JSON format option)
- Log level configuration per service
- Stdout/stderr separation
- Integration with syslog
- Use Case: Better debugging and monitoring capabilities
Medium Priority¶
Features planned for future releases:
Resource Limits¶
- Description: Control resource usage for services
- Details:
- CPU limits (cgroups integration)
- Memory limits with OOM handling
- File descriptor limits
- Process count limits
- Use Case: Prevent resource exhaustion and improve multi-tenant scenarios
Service Groups¶
- Description: Organize and manage related services together
- Details:
- Group services by function or tier
- Start/stop entire groups
- Group-level dependencies
- Parallel startup within groups
- Use Case: Manage complex applications with many services more efficiently
Configuration Validation¶
- Description: Enhanced configuration validation and testing
- Details:
validatecommand to check configuration- Dry-run mode for testing changes
- Configuration schema validation
- Warning for deprecated options
- Use Case: Catch configuration errors before deployment
Metrics and Monitoring¶
- Description: Built-in metrics collection and export
- Details:
- Prometheus metrics endpoint
- Service uptime tracking
- Restart count metrics
- Resource usage metrics
- Custom metric labels
- Use Case: Integration with monitoring systems for observability
Dynamic Configuration Reload¶
- Description: Reload configuration without full restart
- Details:
- Hot reload on SIGHUP
- Add/remove services dynamically
- Update service parameters
- Graceful transition for running services
- Use Case: Reduce downtime during configuration changes
Low Priority¶
Features under consideration for future releases:
Web UI Dashboard¶
- Description: Web-based interface for monitoring and management
- Details:
- Real-time service status display
- Start/stop/restart controls
- Log viewing
- Configuration editor
- Metrics visualization
- Use Case: Easier management for users who prefer GUI over CLI
Service Templates¶
- Description: Reusable service configuration templates
- Details:
- Define service templates with variables
- Instantiate multiple services from templates
- Template inheritance
- Built-in templates for common services
- Use Case: Reduce configuration duplication for similar services
Plugin System¶
- Description: Extensibility through plugins
- Details:
- Plugin API for custom functionality
- Lifecycle hooks (pre-start, post-stop, etc.)
- Custom health checks
- Custom log processors
- Use Case: Allow community extensions without modifying core
Service Discovery Integration¶
- Description: Integration with service discovery systems
- Details:
- Consul integration
- etcd integration
- Automatic service registration
- Dynamic dependency resolution
- Use Case: Better integration with microservices architectures
Notification System¶
- Description: Alert on service events
- Details:
- Webhook notifications
- Email alerts
- Slack/Discord integration
- Configurable event triggers
- Use Case: Proactive alerting for service failures
Contributing to the Roadmap¶
We welcome community input on the roadmap! Here's how you can contribute:
Suggest Features¶
If you have ideas for new features:
- Check if the feature is already listed or requested
- Open a GitHub issue with the "feature request" label
- Describe the use case and expected behavior
- Explain why this feature would be valuable
Vote on Features¶
Help us prioritize by:
- Adding 👍 reactions to feature requests you want
- Commenting with your use case
- Sharing how you would use the feature
Implement Features¶
Want to implement a feature yourself?
- Check the Contributing Guide
- Comment on the feature issue to coordinate
- Submit a pull request with your implementation
Release Schedule¶
Go Overlay follows semantic versioning (MAJOR.MINOR.PATCH):
- Major releases: Breaking changes, significant new features
- Minor releases: New features, backward compatible
- Patch releases: Bug fixes, minor improvements
Current release cycle: - Minor releases: Every 2-3 months - Patch releases: As needed for critical bugs
Version History¶
v1.0.0 (Current)¶
- Initial stable release
- Core service orchestration features
- CLI interface
- Docker integration
Upcoming¶
v1.1.0 (Planned)¶
- Environment variable management
- Service restart policies
- Health check endpoints
- Logging enhancements
v1.2.0 (Planned)¶
- Resource limits
- Service groups
- Configuration validation
- Metrics and monitoring
Stay Updated¶
Follow development progress:
- GitHub: Watch the repository for updates
- Issues: Track feature development in GitHub issues
- Releases: Subscribe to release notifications
- Discussions: Join conversations about future features
Thank you for your interest in Go Overlay! 🚀