{
"decisions": [
{
"topic": "language",
"choice": "Rust",
"reasons": [
"最適スコア"
],
"alternatives": [
"Go",
"TypeScript"
]
},
{
"topic": "backend",
"choice": "Actix Web 4.11",
"reasons": [
"最高 RPS",
"Tokio 安定"
],
"alternatives": [
"Axum",
"Gin (Go)"
]
},
{
"topic": "frontend",
"choice": "SvelteKit 2",
"reasons": [
"最適スコア"
],
"alternatives": [
"Next.js 14",
"Leptos"
]
},
{
"topic": "database",
"choice": "PlanetScale Boost",
"reasons": [
"低レイテンシ",
"高可用性"
],
"alternatives": [
"Supabase",
"Neon"
]
},
{
"topic": "cache",
"choice": "Cloudflare KV",
"reasons": [
"Edge配置",
"低コスト"
],
"alternatives": [
"Redis Cloud",
"Upstash Redis"
]
},
{
"topic": "queue",
"choice": "NATS JetStream 0.37",
"reasons": [
"最適スコア"
],
"alternatives": [
"AWS SQS",
"Cloud Tasks"
]
},
{
"topic": "auth",
"choice": "Passkeys(OIDC)",
"reasons": [
"最適スコア"
],
"alternatives": [
"Auth0",
"Clerk"
]
},
{
"topic": "payments",
"choice": "RuneVault → Stripe",
"reasons": [
"最適スコア"
],
"alternatives": [
"Stripe",
"PayPal"
]
},
{
"topic": "ai",
"choice": "RuneSage",
"reasons": [
"最適スコア"
],
"alternatives": [
"OpenAI GPT-4o",
"Claude 3.5 Sonnet"
]
},
{
"topic": "infra",
"choice": "Terraform + Cloudflare Workers",
"reasons": [
"最適スコア"
],
"alternatives": [
"AWS CDK + Lambda",
"Google Cloud Run"
]
},
{
"topic": "ci_cd",
"choice": "GitHub Actions",
"reasons": [
"最適スコア"
],
"alternatives": [
"GitLab CI",
"CircleCI"
]
}
],
"stack": {
"language": "Rust",
"frontend": "SvelteKit 2",
"backend": "Actix Web 4.11",
"database": "PlanetScale Boost",
"cache": "Cloudflare KV",
"queue": "NATS JetStream 0.37",
"auth": "Passkeys(OIDC)",
"payments": "RuneVault → Stripe",
"ai": [
"RuneSage"
],
"infra": "Terraform + Cloudflare Workers",
"ci_cd": "GitHub Actions"
},
"estimated": {
"monthly_cost_usd": 98.9
},
"slo": {
"availability_pct": 99.95,
"p95_ms": {
"read": 20.0,
"write": 33.333333333333336
}
},
"risk": [
{
"id": "r1",
"desc": "Workers で TCP 制限",
"mitigation": "`connect()` API 経由で HTTP 化"
}
]
}