A Go client library for interacting with the Marathon container orchestration platform API.
Go-marathon is a comprehensive Go library for interacting with the Marathon container orchestration platform's REST API. It provides a native Go interface for managing applications, groups, and pods, simplifying the integration of Go applications with Marathon's deployment and orchestration features.
Go developers building tooling, services, or automation scripts that need to programmatically interact with a Marathon cluster for container orchestration.
Developers choose go-marathon for its idiomatic Go API that abstracts Marathon's REST complexity, built-in high-availability support for multiple endpoints, and flexible event subscription handling via Server-Sent Events or callbacks.
A GO API library for working with Marathon
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built-in support for multiple Marathon endpoints with automatic failover, as shown in the README's client configuration with comma-separated URLs and background pinging.
Offers both Server-Sent Events (SSE) and callback-based event handling, allowing developers to choose based on Marathon version and setup, with detailed examples for each transport.
Includes full support for Marathon pods with idiomatic Go methods for creation, scaling, and deletion, as demonstrated in the pod examples and DSL snippets.
Allows independent configuration of HTTP clients for API and SSE connections with custom timeouts and TLS settings, detailed in the README's customization section.
The README explicitly warns that the library is under active development with frequent, possibly breaking API changes, making it risky for production systems needing stability.
Callback-based event subscriptions require configuring a built-in web server with specific interface and port settings, adding operational overhead compared to SSE or simpler approaches.
Tightly coupled to Marathon's API, so if you switch to a different orchestrator, the library becomes obsolete and requires significant code rewrites, limiting future flexibility.