Skip to content

環境ごとの差異

Takos の public app contract は Cloudflare-native です。.takos/app.yml では d1r2kv のような Cloudflare-native 名を使い、Takos runtime がその spec を各 backend 上で実現します。Cloudflare backend は基準 backend、AWS/GCP/k8s/local は互換 backend です。

Resource Mapping

public kindCloudflareAWSGCPSelf-hosted
d1D1PostgreSQLPostgreSQLPostgreSQL
r2R2S3GCSMinIO
kvKV NamespaceDynamoDB or Takos KV runtimeFirestore or Takos KV runtimeTakos KV runtime
queueQueuesSQSPub/SubRedis-backed queue
vectorizeVectorizepgvector-backed vector storepgvector-backed vector storepgvector-backed vector store
analyticsEngineAnalytics EngineTakos analytics runtimeTakos analytics runtimeTakos analytics runtime
secretRefSecrets / generated valueAWS Secrets ManagerGCP Secret ManagerKubernetes Secret
workflowWorkflowsTakos workflow runtimeTakos workflow runtimeTakos workflow runtime
durableObjectDurable ObjectsTakos durable runtimeTakos durable runtimeTakos durable runtime

Cloudflare-native の public surface は維持しつつ、互換 backend では provider-backed なものと Takos-managed runtime で吸収するものに分かれます。

Workload Mapping

manifestCloudflareOther providers
workersWorkers runtimeprovider-dependent / adapter-based
servicesOCI or provider-specific service hostingprovider-dependent
containersCF ContainersCloudflare-specific

重要な境界

  • public spec は Cloudflare-native 名を使う
  • Takos runtime は Cloudflare backend では spec を直接実現し、互換 backend では provider-backed か Takos-managed runtime に解決する
  • takos apply は同じ manifest surface を使う
  • 同じ app.yml を全環境で byte-for-byte 同一挙動にする保証はない

yaml
resources:
  db:
    type: d1
    binding: DB
  storage:
    type: r2
    binding: STORAGE
  cache:
    type: kv
    binding: CACHE

Cloudflare backend では通常これがそのまま D1 / R2 / KV Namespace に解決され、互換 backend では Takos runtime が SQL / object storage / KV 相当の実装へ解決します。