{
  "repo": "pingcap/ticdc",
  "binary": "storage-consumer",
  "binary_path": "cmd/storage-consumer/main.go",
  "dependencies": {
    "Runtime StorageConsumer.runStorageConsumer": {
      "infrastructure": {
        "object_storage": {
          "conditions": [
            "Always after argument parsing succeeds"
          ],
          "operations": [
            {
              "operation": "CONSUME CHANGE EVENTS",
              "trigger": "Read TiCDC change events from file/s3/azblob/gcs storage",
              "conditions": [
                "The upstream URI uses a supported storage scheme"
              ],
              "implementation": "newConsumer(ctx) and consumer.run(ctx) in cmd/storage-consumer/main.go"
            }
          ]
        },
        "http": {
          "conditions": [
            "Only when --enable-profiling is true"
          ],
          "operations": [
            {
              "operation": "SERVE PPROF",
              "trigger": "Expose local profiling on 127.0.0.1:6060",
              "conditions": [
                "Profiling is explicitly enabled"
              ],
              "implementation": "http.Server.ListenAndServe in cmd/storage-consumer/main.go"
            }
          ]
        }
      },
      "services": [
        {
          "name": "downstream-sink",
          "protocol": "sink-specific",
          "target_interface": "configured downstream URI",
          "purpose": "Flush consumed storage events into the configured sink"
        }
      ]
    }
  }
}
