Marathon API


This module is community maintained and the Lightbend subscription doesn’t cover support for this module. It is also marked as may change. That means that the API, configuration or semantics can change without warning or deprecation period.

Marathon currently ignores all fields apart from service name. This is expected to change.

If you’re a Mesos or DC/OS user, you can use the provided Marathon API implementation. You’ll need to add a label to your Marathon JSON (named ACTOR_SYSTEM_NAME by default) and set the value equal to the name of the configured effective name, which defaults to your applications actor system name.

You’ll also have to add a named port, by default akkamgmthttp, and ensure that Akka Management’s HTTP interface is bound to this port.

Dependencies and usage

This is a separate JAR file:

libraryDependencies += "com.lightbend.akka.discovery" %% "akka-discovery-marathon-api" % "1.0.0"
dependencies {
  compile group: 'com.lightbend.akka.discovery', name: 'akka-discovery-marathon-api_2.12', version: '1.0.0'

And in your application.conf:

akka.discovery {
  method = marathon-api

And in your marathon.json:

   "cmd": "path-to-your-app -Dakka.remote.netty.tcp.hostname=$HOST -Dakka.remote.netty.tcp.port=$PORT_AKKAREMOTE$HOST$PORT_AKKAMGMTHTTP",

   "labels": {
     "ACTOR_SYSTEM_NAME": "my-system"

   "portDefinitions": [
     { "port": 0, "name": "akkaremote" },
     { "port": 0, "name": "akkamgmthttp" }
The source code for this page can be found here.