Akka · Schema

Akka Configuration

JSON Schema representing the Akka framework HOCON configuration structure covering actor system, dispatchers, remoting, cluster, persistence, and HTTP settings.

Actor ModelDistributed SystemsFrameworksJavaMicroservicesReactiveScala

Properties

Name Type Description
akka object
View JSON Schema on GitHub

JSON Schema

akka-config.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/akka/json-schema/akka-config.json",
  "title": "Akka Configuration",
  "description": "JSON Schema representing the Akka framework HOCON configuration structure covering actor system, dispatchers, remoting, cluster, persistence, and HTTP settings.",
  "type": "object",
  "properties": {
    "akka": {
      "type": "object",
      "properties": {
        "loglevel": {
          "type": "string",
          "description": "Log level for the actor system.",
          "enum": ["OFF", "ERROR", "WARNING", "INFO", "DEBUG"],
          "default": "INFO"
        },
        "stdout-loglevel": {
          "type": "string",
          "description": "Log level during startup before logging is configured.",
          "default": "WARNING"
        },
        "actor": {
          "type": "object",
          "description": "Actor system configuration.",
          "properties": {
            "provider": {
              "type": "string",
              "description": "Actor provider (local, cluster, or remote).",
              "enum": ["local", "remote", "cluster"],
              "default": "local"
            },
            "default-dispatcher": {
              "type": "object",
              "description": "Default dispatcher configuration.",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Dispatcher type.",
                  "default": "Dispatcher"
                },
                "executor": {
                  "type": "string",
                  "description": "Executor to use (fork-join-executor or thread-pool-executor).",
                  "default": "fork-join-executor"
                },
                "fork-join-executor": {
                  "type": "object",
                  "properties": {
                    "parallelism-min": {
                      "type": "integer",
                      "default": 8
                    },
                    "parallelism-factor": {
                      "type": "number",
                      "default": 1.0
                    },
                    "parallelism-max": {
                      "type": "integer",
                      "default": 64
                    }
                  },
                  "additionalProperties": true
                },
                "thread-pool-executor": {
                  "type": "object",
                  "properties": {
                    "core-pool-size-min": {
                      "type": "integer",
                      "default": 8
                    },
                    "core-pool-size-factor": {
                      "type": "number",
                      "default": 3.0
                    },
                    "core-pool-size-max": {
                      "type": "integer",
                      "default": 64
                    }
                  },
                  "additionalProperties": true
                },
                "throughput": {
                  "type": "integer",
                  "description": "Messages to process before rescheduling.",
                  "default": 5
                }
              },
              "additionalProperties": true
            },
            "serializers": {
              "type": "object",
              "description": "Named serializer bindings.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "serialization-bindings": {
              "type": "object",
              "description": "Class to serializer mappings.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "allow-java-serialization": {
              "type": "boolean",
              "description": "Allow Java serialization (discouraged in production).",
              "default": false
            }
          },
          "additionalProperties": true
        },
        "remote": {
          "type": "object",
          "description": "Akka Remoting configuration.",
          "properties": {
            "artery": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean",
                  "default": true
                },
                "transport": {
                  "type": "string",
                  "description": "Transport protocol.",
                  "enum": ["aeron-udp", "tcp", "tls-tcp"],
                  "default": "aeron-udp"
                },
                "canonical": {
                  "type": "object",
                  "properties": {
                    "hostname": {
                      "type": "string"
                    },
                    "port": {
                      "type": "integer",
                      "default": 25520
                    }
                  },
                  "additionalProperties": true
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "cluster": {
          "type": "object",
          "description": "Akka Cluster configuration.",
          "properties": {
            "seed-nodes": {
              "type": "array",
              "description": "List of seed node addresses.",
              "items": {
                "type": "string"
              }
            },
            "downing-provider-class": {
              "type": "string",
              "description": "Split brain resolver provider class."
            },
            "min-nr-of-members": {
              "type": "integer",
              "description": "Minimum number of members before cluster is up.",
              "default": 1
            },
            "roles": {
              "type": "array",
              "description": "Roles for this cluster node.",
              "items": {
                "type": "string"
              }
            },
            "sharding": {
              "type": "object",
              "description": "Cluster Sharding configuration.",
              "properties": {
                "number-of-shards": {
                  "type": "integer",
                  "default": 100
                },
                "state-store-mode": {
                  "type": "string",
                  "enum": ["ddata", "persistence"],
                  "default": "ddata"
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "persistence": {
          "type": "object",
          "description": "Akka Persistence configuration.",
          "properties": {
            "journal": {
              "type": "object",
              "properties": {
                "plugin": {
                  "type": "string",
                  "description": "Journal plugin class."
                }
              },
              "additionalProperties": true
            },
            "snapshot-store": {
              "type": "object",
              "properties": {
                "plugin": {
                  "type": "string",
                  "description": "Snapshot store plugin class."
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "http": {
          "type": "object",
          "description": "Akka HTTP configuration.",
          "properties": {
            "server": {
              "type": "object",
              "properties": {
                "idle-timeout": {
                  "type": "string",
                  "default": "60s"
                },
                "request-timeout": {
                  "type": "string",
                  "default": "20s"
                },
                "max-connections": {
                  "type": "integer",
                  "default": 1024
                },
                "preview": {
                  "type": "object",
                  "properties": {
                    "enable-http2": {
                      "type": "boolean",
                      "default": false
                    }
                  },
                  "additionalProperties": true
                }
              },
              "additionalProperties": true
            },
            "client": {
              "type": "object",
              "properties": {
                "idle-timeout": {
                  "type": "string",
                  "default": "60s"
                },
                "connecting-timeout": {
                  "type": "string",
                  "default": "10s"
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "management": {
          "type": "object",
          "description": "Akka Management HTTP endpoint configuration.",
          "properties": {
            "http": {
              "type": "object",
              "properties": {
                "hostname": {
                  "type": "string",
                  "default": "0.0.0.0"
                },
                "port": {
                  "type": "integer",
                  "default": 8558
                },
                "base-path": {
                  "type": "string",
                  "description": "Base path prefix for management routes."
                }
              },
              "additionalProperties": true
            },
            "cluster": {
              "type": "object",
              "properties": {
                "bootstrap": {
                  "type": "object",
                  "properties": {
                    "contact-point-discovery": {
                      "type": "object",
                      "properties": {
                        "discovery-method": {
                          "type": "string",
                          "description": "Service discovery method (e.g., kubernetes-api, akka-dns)."
                        },
                        "service-name": {
                          "type": "string"
                        },
                        "required-contact-point-nr": {
                          "type": "integer",
                          "default": 2
                        }
                      },
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}