
cache-expert
by dagger
cache-expertは、業務プロセスの自動化を支援するスキルです。ワークフロー管理と自動化により、生産性の向上と運用効率の改善を実現します。
SKILL.md
name: cache-expert description: Covers Dagger Engine caching internals including cache key derivation, invalidation, and the immutable DAG model. Use when debugging cache misses, unexpected invalidations, or implementing caching-related engine features.
Cache Expert
High-Level Architecture
The Dagger Engine serves a GraphQL-based API for building and executing DAG workflows.
Each operation takes immutable objects/scalar values as inputs and produces an immutable object/scalar value as output. "Mutability" is simulated as a DAG of these operations on immutable values, similar to functional programming.
This enables caching: since inputs are immutable and operations are deterministic, cache keys can be derived from the operation and its inputs.
Key concepts:
- ID: A scalar value that encapsulates the operation that created an object. Enables non-scalar values to be used as inputs to other operations, forming a DAG.
- Digest: A hash derived from an operation and its inputs, used for cache key computation.
- Call Cache Key: Determines whether an operation's result can be retrieved from cache.
Core API Call Anatomy
Every API call has three typed components:
- Parent - The object the operation is called on (e.g.,
Container) - Arguments - The operation's input arguments
- Return value - The result (scalar or object with an ID)
Cache Key Computation
By default, a call's cache key is a hash of:
- Operation name (e.g.,
Container.withExec) - Parent's digest
- Arguments' digests
This matches the default ID digest. See ids.md for details.
Cache Key Customization
Cache keys can be scoped differently:
- Per-client - Cached per connected client
- Per-session - Cached for the duration of a session
- Per-call - Never cached (unique each invocation)
- Custom - Arbitrary cache key logic
Object IDs vs Cache Keys
These are related but distinct:
- Call cache key - Used to look up cached results
- Returned object ID - May equal the cache key, or may be a separate operation
- Object digest - Usually matches call cache key, but can be customized (e.g., content-addressed)
Quick Reference
Jump to the right doc for your task:
| Task | Read |
|---|---|
| Understand how IDs encode operations | ids.md |
| Understand the GraphQL server implementation | dagql-api-server.md |
| Understand how results are cached | cache-storage.md |
| Understand BuildKit integration (being phased out) | buildkit-dagop.md |
| Debug a cache miss | debugging.md |
| Test cache behavior | testing.md |
Core References
Read in order to build deep expertise:
- ids.md - How IDs encode operations and derive digests
- dagql-api-server.md - The dagql GraphQL server implementation
- cache-storage.md - How dagql results are cached
- buildkit-dagop.md - BuildKit integration and its phase-out status
Optional References
Load on-demand for specific tasks:
- debugging.md - Techniques for diagnosing cache misses and unexpected invalidations
- testing.md - How to test cache behavior in the engine
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 1000以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です



