Architecture Decision Matrix¶
Summary¶
Decision guide for choosing static, dynamic, or hybrid SkyCMS delivery architecture.
Reading path: Architecture overview > Architecture Executive Summary > Core Platform Architecture > Architecture Decision Matrix
Purpose¶
Use this matrix to select the best SkyCMS delivery architecture for a specific site or tenant.
Selection criteria matrix¶
| Criteria | Static profile | Dynamic profile | Hybrid profile |
|---|---|---|---|
| Primary traffic type | Anonymous, cache-heavy | Mixed or interactive | Mostly anonymous with protected areas |
| Content freshness expectation | Publish-driven freshness | Request-time freshness | Publish-driven with targeted runtime paths |
| Personalization need | Low | High | Medium |
| Auth-protected public content | Limited | Strong | Strong on selected routes |
| Runtime complexity tolerance | Low | High | Medium |
| Infra cost target | Lowest | Highest | Medium |
| Edge caching effectiveness | Highest | Medium | High |
| Operational simplicity | High | Medium | Medium |
Request routing matrix visualization¶
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#eef6ff","primaryTextColor":"#0f172a","primaryBorderColor":"#2563eb","lineColor":"#334155","secondaryColor":"#f8fafc","tertiaryColor":"#ffffff","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
flowchart LR
Route[Incoming route] --> Classify{Route class}
Classify --> Public[Public content]
Classify --> Protected[Protected content]
Classify --> Personal[Personalized content]
Classify --> Api[Dynamic API]
Public --> StaticMode[Static profile: preferred]
Public --> HybridMode[Hybrid profile: supported]
Protected --> HybridMode
Protected --> DynamicMode[Dynamic profile: preferred]
Personal --> DynamicMode
Api --> DynamicMode
Api --> HybridMode
StaticMode --> OutcomeStatic[High edge cache efficiency]
DynamicMode --> OutcomeDynamic[High runtime flexibility]
HybridMode --> OutcomeHybrid[Balanced performance and control]
Fast decision guide¶
Choose static profile when:
- content is mostly public and cacheable,
- peak traffic is high,
- minimizing runtime complexity is a priority.
Choose dynamic profile when:
- runtime composition or endpoint behavior is central,
- personalization and protected interactions are common,
- the team can support stronger runtime operations.
Choose hybrid profile when:
- public content should remain static-first,
- some routes require authentication or dynamic handling,
- you need balance between performance and flexibility.
Scenario recommendations¶
| Scenario | Recommended profile | Notes |
|---|---|---|
| Public marketing site | Static | Use aggressive CDN caching and publish-triggered purge |
| Knowledge base with private sections | Hybrid | Keep docs static, gate private sections |
| Customer portal with user-specific content | Dynamic | Prioritize runtime auth and per-request logic |
| Multi-tenant docs network with small protected admin docs | Hybrid | Static delivery for most tenants, protected paths where needed |
Non-functional requirement mapping¶
| NFR priority | Preferred profile |
|---|---|
| Lowest latency at global scale | Static |
| Rich runtime behavior | Dynamic |
| Balanced performance and access control | Hybrid |
| Minimal runtime blast radius | Static |
| Strong route-level policy flexibility | Dynamic or Hybrid |
Review checklist¶
Before finalizing architecture for a workload, confirm:
- Route classes are clearly identified.
- Cache policy for public and protected paths is documented.
- Tenant isolation assumptions are validated.
- Publish flow observability is in place.
- Rollback strategy exists for failed publish or stale cache events.
Working assets¶
Use these pages while running a real mode-selection exercise:
- Architecture Mode Selection Worksheet
- Architecture Route Inventory Templates
- Architecture Review Checklist