{
  "version": 1,
  "product": "servix",
  "site": "https://docs.servix.x12i.com",
  "knowledgePackage": "@x12i/servix-docs",
  "roles": [
    "developers"
  ],
  "books": [
    {
      "id": "00-overview",
      "audiences": [
        "developers"
      ],
      "md": {
        "developers": "downloads/books/00-overview/developers.md"
      },
      "pdf": {
        "developers": null
      },
      "chapters": {
        "developers": "downloads/books/00-overview/developers.chapters.json"
      }
    },
    {
      "id": "01-wrapping-existing-code",
      "audiences": [
        "developers"
      ],
      "md": {
        "developers": "downloads/books/01-wrapping-existing-code/developers.md"
      },
      "pdf": {
        "developers": null
      },
      "chapters": {
        "developers": "downloads/books/01-wrapping-existing-code/developers.chapters.json"
      }
    },
    {
      "id": "02-cli-lifecycle",
      "audiences": [
        "developers"
      ],
      "md": {
        "developers": "downloads/books/02-cli-lifecycle/developers.md"
      },
      "pdf": {
        "developers": null
      },
      "chapters": {
        "developers": "downloads/books/02-cli-lifecycle/developers.chapters.json"
      }
    },
    {
      "id": "03-workers-and-runtime",
      "audiences": [
        "developers"
      ],
      "md": {
        "developers": "downloads/books/03-workers-and-runtime/developers.md"
      },
      "pdf": {
        "developers": null
      },
      "chapters": {
        "developers": "downloads/books/03-workers-and-runtime/developers.chapters.json"
      }
    },
    {
      "id": "04-getting-started",
      "audiences": [
        "developers"
      ],
      "md": {
        "developers": "downloads/books/04-getting-started/developers.md"
      },
      "pdf": {
        "developers": null
      },
      "chapters": {
        "developers": "downloads/books/04-getting-started/developers.chapters.json"
      }
    }
  ],
  "useCases": [
    {
      "id": "orient-servix",
      "title": "Orient on Servix",
      "md": "downloads/use-cases/orient-servix.md",
      "path": [
        {
          "bookId": "00-overview",
          "audience": "developers",
          "chapters": [
            "the-central-idea",
            "1-what-servix-is",
            "2-the-service-shell-mental-model",
            "3-what-you-can-wrap"
          ]
        }
      ]
    },
    {
      "id": "wrap-existing-function",
      "title": "Wrap an existing function",
      "md": "downloads/use-cases/wrap-existing-function.md",
      "path": [
        {
          "bookId": "01-wrapping-existing-code",
          "audience": "developers",
          "chapters": [
            "1-wrap-an-existing-function",
            "5-package-patterns"
          ]
        }
      ]
    },
    {
      "id": "wrap-cli-command",
      "title": "Wrap a CLI command",
      "md": "downloads/use-cases/wrap-cli-command.md",
      "path": [
        {
          "bookId": "01-wrapping-existing-code",
          "audience": "developers",
          "chapters": [
            "2-wrap-a-cli-command"
          ]
        }
      ]
    },
    {
      "id": "wrap-listener",
      "title": "Wrap a webhook listener",
      "md": "downloads/use-cases/wrap-listener.md",
      "path": [
        {
          "bookId": "01-wrapping-existing-code",
          "audience": "developers",
          "chapters": [
            "3-wrap-a-listener"
          ]
        },
        {
          "bookId": "03-workers-and-runtime",
          "audience": "developers",
          "chapters": [
            "1-worker-types",
            "2-the-service-context"
          ]
        }
      ]
    },
    {
      "id": "run-lifecycle-cli",
      "title": "Operate services from the CLI",
      "md": "downloads/use-cases/run-lifecycle-cli.md",
      "path": [
        {
          "bookId": "02-cli-lifecycle",
          "audience": "developers",
          "chapters": [
            "1-cli-commands",
            "2-lifecycle-semantics",
            "3-pause-vs-stop"
          ]
        }
      ]
    },
    {
      "id": "ship-service-package",
      "title": "Ship a service as an npm package",
      "md": "downloads/use-cases/ship-service-package.md",
      "path": [
        {
          "bookId": "04-getting-started",
          "audience": "developers",
          "chapters": [
            "3-write-your-first-service",
            "4-ship-it-as-an-npm-package"
          ]
        },
        {
          "bookId": "01-wrapping-existing-code",
          "audience": "developers",
          "chapters": [
            "5-package-patterns"
          ]
        }
      ]
    }
  ],
  "indexes": {
    "indexMd": "INDEX.md",
    "searchJson": "SEARCH.json"
  },
  "concepts": [
    {
      "id": "listener-vs-proactive",
      "title": "Listener vs proactive workers",
      "md": "concepts/listener-vs-proactive.md"
    },
    {
      "id": "pause-vs-stop",
      "title": "Pause vs stop",
      "md": "concepts/pause-vs-stop.md"
    },
    {
      "id": "service-discovery",
      "title": "Service discovery via package.json",
      "md": "concepts/service-discovery.md"
    },
    {
      "id": "service-shell",
      "title": "The service shell",
      "md": "concepts/service-shell.md"
    },
    {
      "id": "wrap-once-run-managed",
      "title": "Wrap once, run managed",
      "md": "concepts/wrap-once-run-managed.md"
    }
  ],
  "guides": [
    {
      "id": "install-and-run",
      "title": "Install and run a service",
      "md": "guides/install-and-run.md"
    },
    {
      "id": "wrap-a-cli-command",
      "title": "Wrap a CLI command",
      "md": "guides/wrap-a-cli-command.md"
    },
    {
      "id": "wrap-a-function",
      "title": "Wrap an existing function",
      "md": "guides/wrap-a-function.md"
    },
    {
      "id": "wrap-a-listener",
      "title": "Wrap a webhook listener",
      "md": "guides/wrap-a-listener.md"
    }
  ],
  "scenarios": [
    {
      "id": "choose-worker-type",
      "title": "Choose the right worker type",
      "md": "scenarios/choose-worker-type.md"
    }
  ],
  "decisions": [],
  "glossary": [],
  "visuals": [],
  "diagrams": [],
  "relationships": [],
  "tutorials": [],
  "examples": [],
  "sampleData": [],
  "uiClients": [],
  "apis": [],
  "packs": [
    {
      "id": "concept/listener-vs-proactive",
      "type": "concept",
      "path": "packs/concept/listener-vs-proactive"
    },
    {
      "id": "concept/pause-vs-stop",
      "type": "concept",
      "path": "packs/concept/pause-vs-stop"
    },
    {
      "id": "concept/service-discovery",
      "type": "concept",
      "path": "packs/concept/service-discovery"
    },
    {
      "id": "concept/service-shell",
      "type": "concept",
      "path": "packs/concept/service-shell"
    },
    {
      "id": "concept/wrap-once-run-managed",
      "type": "concept",
      "path": "packs/concept/wrap-once-run-managed"
    },
    {
      "id": "guide/install-and-run",
      "type": "guide",
      "path": "packs/guide/install-and-run"
    },
    {
      "id": "guide/wrap-a-cli-command",
      "type": "guide",
      "path": "packs/guide/wrap-a-cli-command"
    },
    {
      "id": "guide/wrap-a-function",
      "type": "guide",
      "path": "packs/guide/wrap-a-function"
    },
    {
      "id": "guide/wrap-a-listener",
      "type": "guide",
      "path": "packs/guide/wrap-a-listener"
    },
    {
      "id": "scenario/choose-worker-type",
      "type": "scenario",
      "path": "packs/scenario/choose-worker-type"
    }
  ]
}