{
  "repo": "pingcap/dm",
  "binary": "dm-worker",
  "binary_path": "cmd/dm-worker/main.go",
  "dependencies": {
    "WorkerRPC.QueryStatus": {
      "infrastructure": {
        "etcd": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Coordinate worker state with DM master cluster",
              "trigger": "Worker gRPC request",
              "implementation": "ha.GetSourceBoundConfig / observeSourceBound / startKeepAlive"
            }
          ]
        }
      },
      "services": []
    },
    "WorkerRPC.PurgeRelay": {
      "infrastructure": {
        "mysql": {
          "conditions": [
            "When relay is enabled"
          ],
          "operations": [
            {
              "operation": "Manage local relay log lifecycle for upstream sources",
              "trigger": "Relay operation via gRPC",
              "implementation": "Server.PurgeRelay"
            }
          ]
        }
      },
      "services": []
    },
    "StatusAPI.Status": {
      "infrastructure": {},
      "services": []
    },
    "MetricsAPI.Metrics": {
      "infrastructure": {
        "prometheus": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Expose worker metrics on the cmux HTTP branch",
              "trigger": "InitStatus(httpL)",
              "implementation": "dm/worker/metrics.go"
            }
          ]
        }
      },
      "services": []
    },
    "DebugAPI.PprofIndex": {
      "infrastructure": {},
      "services": []
    }
  }
}
