Repository navigation
EdgeZero Integration #480
Copy link
Copy link
Milestone
Description
Overview
Migrate trusted-server from direct Fastly Compute SDK usage to the EdgeZero framework, enabling deployment across Fastly, Cloudflare Workers, and native Axum/Tokio from a single codebase.
Tasks
The full migration plan is documented in docs/internal/EDGEZERO_MIGRATION.md. Each PR below maps to a GitHub issue filed from the backlog table in that document.
Phase 0: Foundation
- Rename crates and add EdgeZero workspace dependencies #482 — PR 1: Rename crates and add EdgeZero workspace dependencies
- Define platform traits, ClientInfo, PlatformError, RuntimeServices #483 — PR 2: Define platform traits, ClientInfo, PlatformError, RuntimeServices
Phase 1: Extract Platform Behaviors
- Split fastly_storage.rs + config store trait (read-only) #484 — PR 3: Split fastly_storage.rs + config store trait (read-only)
- Secret store trait (read-only) #485 — PR 4: Secret store trait (read-only)
- KV store trait #486 — PR 5: KV store trait
- Backend + HTTP client traits #487 — PR 6: Backend + HTTP client traits
- Geo lookup + client info (extract-once) #488 — PR 7: Geo lookup + client info (extract-once)
- Content rewriting trait (or verification) #489 — PR 8: Content rewriting trait (or verification)
- Wire signing to store write primitives #490 — PR 9: Wire signing to store write primitives
- Abstract logging initialization #491 — PR 10: Abstract logging initialization
Phase 2: Layered Type Migration
- Utility layer type migration + compat adapter #492 — PR 11: Utility layer type migration + compat adapter
- Handler layer type migration #493 — PR 12: Handler layer type migration
- Thread RuntimeServices into integration and provider entry points #515 — PR 12.5: Thread RuntimeServices into integration and provider entry points
- Integration + provider layer type migration #494 — PR 13: Integration + provider layer type migration
Phase 3: Entry Point and Cleanup
- Fastly entry point switch (dual-path with flag) #495 — PR 14: Fastly entry point switch (dual-path with flag)
- Remove fastly from core crate #496 — PR 15: Remove fastly from core crate + remove tokio dependency
Phase 4: New Targets
- Axum dev server entry point #497 — PR 16: Axum dev server entry point
- Cloudflare Workers entry point #498 — PR 17: Cloudflare Workers entry point (+ std::time::Instant cleanup)
Phase 5: Verification, Cutover, and Rollback
- Verification gates #499 — Verification gates
- Cutover and canary rollout #500 — Cutover and canary rollout
- Legacy entry point cleanup (post-cutover) #501 — Legacy entry point cleanup (post-cutover)
Timeline Notes
Week 3-4 parallelism is optimistic. PRs 3, 6, 7, 8, 10 all touch main.rs for wiring, and the entry-point merge rule serializes them. PRs 7/8/10 may slip to week 5.
Design Decisions
- ClientInfo is a struct, not a trait. Extracted once at the entry point, stored in
RuntimeServices. See Define platform traits, ClientInfo, PlatformError, RuntimeServices #483. - PlatformHttpClient supersedes EdgeZero ProxyClient. An EdgeZero issue should be filed to generalize
ProxyClientbefore PR 6 merges. See Backend + HTTP client traits #487. - PR 12.5 splits RuntimeServices threading from PR 13. Pure signature-change PR that adds
&RuntimeServicesto integration/provider entry points without changing any types. See Thread RuntimeServices into integration and provider entry points #515.
Key Documents
docs/internal/EDGEZERO_MIGRATION.md— full migration plan with PR scopes, dependency graph, acceptance criteria, and issue backlog
Activity
Add EdgeZero migration plan document
21 remaining items
[-]EdgeZero migration[/-][+]EdgeZero Integration[/+]