digraph G {
  subgraph cluster_0 {
    label = "chihaya";
    style = "line";
    color = "blue";

    "Storage";

    subgraph cluster_1 {
      label = "frontend";
      style = "line";
      color = "hotpink";

      "Parser";
      "Writer";
    }

    subgraph cluster_2 {
      label = "logic";
      style = "line";
      color = "purple";

      "PreHook Middleware";
      "PostHook Middleware";
      "Response Generator";
    }
  }

  "BitTorrent Client" -> "Parser";
  "Parser" -> "PreHook Middleware";
  "PreHook Middleware" -> "Response Generator";
  "PostHook Middleware" -> "Storage";
  "Storage" -> "Response Generator";
  "Response Generator" -> "Writer";
  "Writer" -> "BitTorrent Client";
}