stack-engine 0.9.1

Pure execution facade for Stack diagram operations
Documentation
stack 1.0

diagram "Sample Service" {
  layout { direction down }

  node customer "Customer" { kind actor }
  node operator "Operator" { kind actor }
  node cdn "Cloudflare" { kind cache }

  group gcp "Google Cloud" {
    node alb-for-customer "ALB(for User)" { kind service icon "load-balancer" }
    node alb-for-operator "ALB(for Admin)" { kind service icon "load-balancer" }

    group vpc "VPC" {
      node iap "Identity Aware Proxy" { kind service icon "identity" }
      node web "Web" { kind service icon "server" }
      node admin "Admin" { kind service icon "server" }
      node api "API" { kind service icon "server" }
      node db "Spanner" { kind database }
      node scheduler "Cloud Scheduler" {
        kind service
        icon "scheduler"
        detail "every 1min"
      }
      node pubsub "Cloud Pub/Sub" { kind worker icon "event" }
      node worker1 "Worker" {
        kind worker
        icon "server"
        detail "Cloud Run Jobs Worker"
      }
    }
  }

  edge customer <-> cdn "If cached Return Cache"
  edge cdn -> alb-for-customer
  edge alb-for-customer -> web
  edge web -> api
  edge api -> pubsub
  edge operator -> alb-for-operator
  edge alb-for-operator -> iap
  edge iap -> admin
  edge admin -> api
  edge api -> db
  edge scheduler -> worker1
  edge pubsub -> worker1
  edge worker1 -> db "Batch"
}