Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. go-marathon

go-marathon

Apache-2.0Go

A Go client library for interacting with the Marathon container orchestration platform API.

GitHubGitHub
199 stars126 forks0 contributors

What is go-marathon?

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.

Target Audience

Go developers building tooling, services, or automation scripts that need to programmatically interact with a Marathon cluster for container orchestration.

Value Proposition

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.

Overview

A GO API library for working with Marathon

Use Cases

Best For

  • Building Go-based CLI tools or internal services to automate Marathon application deployments and scaling.
  • Developing custom operators or controllers in Go that need to react to Marathon events like application status updates.
  • Managing Marathon pods programmatically for deploying groups of co-located tasks from Go applications.
  • Integrating Marathon with existing Go infrastructure where custom HTTP clients with specific TLS or timeout configurations are required.
  • Creating high-availability Go clients that can automatically failover between multiple Marathon endpoints.
  • Writing tests for Marathon-related Go code using the included fake Marathon implementation for mocking API responses.

Not Ideal For

  • Production environments that require a stable, versioned API without breaking changes for long-term support.
  • Teams using container orchestration platforms other than Marathon, such as Kubernetes or Docker Swarm.
  • Simple automation scripts where direct HTTP calls to the Marathon REST API might be more lightweight and sufficient.
  • Setups where deploying a separate web server for event callback subscriptions is impractical or overly complex.

Pros & Cons

Pros

High-Availability Endpoint Support

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.

Flexible Event Subscriptions

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.

Comprehensive Pod Management

Includes full support for Marathon pods with idiomatic Go methods for creation, scaling, and deletion, as demonstrated in the pod examples and DSL snippets.

Custom HTTP Client Configuration

Allows independent configuration of HTTP clients for API and SSE connections with custom timeouts and TLS settings, detailed in the README's customization section.

Cons

Unstable API with Breaking Changes

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.

Complex Event Callback Setup

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.

Marathon-Specific Lock-in

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.

Frequently Asked Questions

Quick Stats

Stars199
Forks126
Contributors0
Open Issues21
Last commit5 years ago
CreatedSince 2015

Tags

#deployment#devops#container-orchestration#marathon#high-availability#api-client#event-streaming#go

Built With

G
Go

Included in

Go169.1k
Auto-fetched 17 hours ago

Related Projects

githubgithub

Go library for accessing the GitHub v3 API

Stars11,275
Forks2,428
Last commit1 day ago
go-openaigo-openai

OpenAI ChatGPT, GPT-5, GPT-Image-1, Whisper API clients for Go

Stars10,725
Forks1,701
Last commit9 months ago
DiscordgoDiscordgo

(Golang) Go bindings for Discord

Stars5,967
Forks923
Last commit5 months ago
slackslack

Slack API in Go

Stars4,953
Forks1,193
Last commit4 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub