Lagom · Schema

Lagom Application Configuration

JSON Schema representing the Lagom framework configuration structure (application.conf in HOCON format) covering service locator, persistence, clustering, and broker settings.

AkkaEvent SourcingFrameworksJavaMicroservicesReactiveScala

Properties

Name Type Description
lagom object
View JSON Schema on GitHub

JSON Schema

lagom-config.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/lagom/json-schema/lagom-config.json",
  "title": "Lagom Application Configuration",
  "description": "JSON Schema representing the Lagom framework configuration structure (application.conf in HOCON format) covering service locator, persistence, clustering, and broker settings.",
  "type": "object",
  "properties": {
    "lagom": {
      "type": "object",
      "properties": {
        "services": {
          "type": "object",
          "description": "Service locator configuration for locating other services.",
          "additionalProperties": {
            "type": "string",
            "description": "URI of the service."
          }
        },
        "persistence": {
          "type": "object",
          "description": "Persistence and read-side configuration.",
          "properties": {
            "maxNumberOfShards": {
              "type": "integer",
              "description": "Number of shards for persistent entity distribution.",
              "default": 100
            },
            "snapshotAfter": {
              "type": "integer",
              "description": "Number of events before taking a snapshot.",
              "default": 100
            },
            "askTimeout": {
              "type": "string",
              "description": "Timeout for asks to persistent entities.",
              "default": "5s"
            },
            "readSide": {
              "type": "object",
              "properties": {
                "cassandra": {
                  "type": "object",
                  "description": "Cassandra read-side processor settings.",
                  "properties": {
                    "keyspace": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "broker": {
          "type": "object",
          "description": "Message broker configuration.",
          "properties": {
            "kafka": {
              "type": "object",
              "properties": {
                "serviceNamePrefix": {
                  "type": "string",
                  "description": "Prefix for Kafka service name.",
                  "default": "kafka_native"
                },
                "brokers": {
                  "type": "string",
                  "description": "Comma-separated list of Kafka broker addresses."
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "cluster": {
          "type": "object",
          "description": "Akka Cluster settings for Lagom.",
          "properties": {
            "joinSelf": {
              "type": "boolean",
              "description": "Whether the node should join itself to form a cluster.",
              "default": true
            },
            "exitJvm": {
              "type": "boolean",
              "description": "Exit the JVM on ActorSystem termination.",
              "default": true
            }
          },
          "additionalProperties": true
        },
        "circuitBreaker": {
          "type": "object",
          "description": "Default circuit breaker configuration.",
          "properties": {
            "default": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean",
                  "default": true
                },
                "maxFailures": {
                  "type": "integer",
                  "default": 10
                },
                "callTimeout": {
                  "type": "string",
                  "default": "10s"
                },
                "resetTimeout": {
                  "type": "string",
                  "default": "15s"
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}