feat(cache): entity graph cache with GraphQL support#10
Merged
Conversation
Entity graph-based cache invalidation with GraphQL caching support. Unified rewrite approach with EntityAwareCache facade, migrating from redb to libsql. Resolves #9.
Replace redb with libsql and introduce EntityAwareCache facade for entity-based cache invalidation. Add GraphQL query caching with request classification (REST GET/mutation, GraphQL query/mutation). - storage.rs: libsql connection + schema DDL - entity_cache.rs: EntityAwareCache with entity dependency tracking - entity.rs: extract node_id from REST/GraphQL responses - classify.rs: request classification for REST/GraphQL routing - key.rs: add graphql_cache_key generation - proxy.rs: unified handler with entity-aware flow - error.rs: simplified to single libsql error variant Resolves #9
Update product.md, tech-stack.md, CLAUDE.md to reflect: - redb → libsql migration - GraphQL caching now supported - Entity graph invalidation added to caching strategy
…ol invalidation forward_to_github now returns GithubResponse instead of axum::Response, enabling entity extraction from mutation response bodies. handle_mutation calls invalidate_by_entities() for cross-protocol cache invalidation (REST ↔ GraphQL via node_id), with prefix invalidation as fallback. Fixes FR-3, FR-5, FR-6 from entity-graph-cache spec.
- Remove expect() panic in count(), return 0 on empty result - Return 400 on body read failure instead of silent empty bytes - Treat subscription operations as non-cacheable (like mutations)
amondnet
marked this pull request as ready for review
March 29, 2026 09:15
17 tasks
- Update taiki-e/install-action from broken SHA to v2.70.1 - Fix ESLint formatting in ARCHITECTURE.md, .mise.toml, dependabot.yml - Fix missing newline in .superset/config.json
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
- Upload both as separate flags to Codecov - Update codecov.yml components for new module structure - Integration tests cover proxy.rs handlers, improving patch coverage
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Track: entity-graph-cache-20260329
Resolves #9
Test plan
Verification Checklist
Automated Tests
Observable Outcomes
Acceptance Criteria