Download archify/examples/cache-miss-request.sequence.json from smlflg/archify-hai: direct link, hf CLI and curl.
- Browser
- Download file 4.37 kB
-
https://huggingface.co/smlflg/archify-hai/resolve/main/archify/examples/cache-miss-request.sequence.json
- Command line
-
hf download hf://smlflg/archify-hai/archify/examples/cache-miss-request.sequence.json
-
curl -L -o cache-miss-request.sequence.json https://huggingface.co/smlflg/archify-hai/resolve/main/archify/examples/cache-miss-request.sequence.json
4.37 kB
| { | |
| "schema_version": 1, | |
| "diagram_type": "sequence", | |
| "meta": { | |
| "title": "Cache Miss Request Sequence", | |
| "output": "examples/sequence-cache-miss-request.html", | |
| "viewBox": [1080, 560], | |
| "column_fit": "spread", | |
| "animation": "trace", | |
| "quality_profile": "showcase", | |
| "views": [ | |
| { "id": "request-and-auth", "label": "Request and identity", "focus": ["user", "web", "api", "auth"], "note": "Follow the user request through the authentication check." }, | |
| { "id": "cache-fallback", "label": "Cache fallback", "focus": ["api", "redis", "db"], "note": "See the cache miss and the source-of-truth query it triggers." }, | |
| { "id": "return-and-trace", "label": "Return and trace", "focus": ["db", "api", "redis", "trace", "web", "user"], "note": "Separate response latency from the non-blocking observability write." } | |
| ] | |
| }, | |
| "participants": [ | |
| { "id": "user", "type": "external", "label": "User", "sublabel": "browser session" }, | |
| { "id": "web", "type": "frontend", "label": "Web App", "sublabel": "React UI" }, | |
| { "id": "api", "type": "backend", "label": "API", "sublabel": "request handler" }, | |
| { "id": "auth", "type": "security", "label": "Auth", "sublabel": "JWT verify" }, | |
| { "id": "redis", "type": "database", "label": "Redis", "sublabel": "cache" }, | |
| { "id": "db", "type": "database", "label": "Postgres", "sublabel": "source of truth" }, | |
| { "id": "trace", "type": "messagebus", "label": "Trace", "sublabel": "async event" } | |
| ], | |
| "segments": [ | |
| { "from": 150, "to": 250, "label": "Request" }, | |
| { "from": 260, "to": 370, "label": "Fallback" }, | |
| { "from": 380, "to": 480, "label": "Response + trace" } | |
| ], | |
| "messages": [ | |
| { "id": "open-page", "from": "user", "to": "web", "y": 160, "label": "open page", "variant": "default" }, | |
| { "id": "dashboard-request", "from": "web", "to": "api", "y": 185, "label": "GET /dashboard", "variant": "emphasis" }, | |
| { "id": "verify-jwt", "from": "api", "to": "auth", "y": 210, "label": "verify JWT", "variant": "security" }, | |
| { "id": "auth-claims", "from": "auth", "to": "api", "y": 238, "label": "claims ok", "variant": "return" }, | |
| { "id": "cache-read", "from": "api", "to": "redis", "y": 270, "label": "read cache", "variant": "default" }, | |
| { "id": "cache-miss", "from": "redis", "to": "api", "y": 298, "label": "miss", "variant": "return" }, | |
| { "id": "profile-query", "from": "api", "to": "db", "y": 330, "label": "query profile + metrics", "variant": "emphasis" }, | |
| { "id": "profile-rows", "from": "db", "to": "api", "y": 358, "label": "rows", "variant": "return" }, | |
| { "id": "cache-write", "from": "api", "to": "redis", "y": 390, "label": "set cache", "variant": "dashed" }, | |
| { "id": "trace-emit", "from": "api", "to": "trace", "y": 418, "label": "emit trace", "variant": "dashed" }, | |
| { "id": "dashboard-response", "from": "api", "to": "web", "y": 443, "label": "200 JSON", "variant": "return" }, | |
| { "id": "page-render", "from": "web", "to": "user", "y": 468, "label": "render", "variant": "return" } | |
| ], | |
| "activations": [ | |
| { "participant": "web", "from": 180, "to": 474, "type": "frontend" }, | |
| { "participant": "api", "from": 185, "to": 450, "type": "backend" }, | |
| { "participant": "auth", "from": 205, "to": 244, "type": "security" }, | |
| { "participant": "redis", "from": 265, "to": 304, "type": "database" }, | |
| { "participant": "db", "from": 325, "to": 364, "type": "database" }, | |
| { "participant": "trace", "from": 413, "to": 449, "type": "messagebus" } | |
| ], | |
| "cards": [ | |
| { | |
| "dot": "emerald", | |
| "title": "Happy Path", | |
| "items": [ | |
| "The main request is Web App -> API -> data source -> response", | |
| "Return messages are quieter than forward calls", | |
| "Activation bars make ownership duration visible" | |
| ] | |
| }, | |
| { | |
| "dot": "rose", | |
| "title": "Policy + Fallback", | |
| "items": [ | |
| "JWT verification is colored as a security interaction", | |
| "Cache miss is visible without overpowering the main path", | |
| "Database access only appears after cache fallback" | |
| ] | |
| }, | |
| { | |
| "dot": "orange", | |
| "title": "Async Trace", | |
| "items": [ | |
| "Trace emission is dashed and secondary", | |
| "It does not block the response path", | |
| "The diagram separates user-facing latency from observability" | |
| ] | |
| } | |
| ] | |
| } | |