Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
a4a05b0
chore: add ProvidesData + tests
jensneuse Jul 30, 2025
499737b
feat: implement ProvidesData on fetch
jensneuse Jul 31, 2025
571cfe0
chore: improve __typename handling
jensneuse Jul 31, 2025
6322c7b
chore: correctly handle objects in lists
jensneuse Jul 31, 2025
8bcdfa3
chore: implement loader.canSkipFetch
jensneuse Jul 31, 2025
af1d767
Merge branch 'wg-master' into feat/add-caching-support
jensneuse Jul 31, 2025
101e813
chore: add cache config to resolve & gateway
jensneuse Aug 5, 2025
b57a86e
chore: add federation cache test
jensneuse Aug 5, 2025
057e557
chore: add cache config to fetch & loader
jensneuse Aug 5, 2025
e6f13c2
Merge branch 'wg-master' into feat/add-caching-support
jensneuse Sep 16, 2025
b585cd4
chore: fix tests
jensneuse Sep 17, 2025
f7d2b94
chore: fix tests
jensneuse Sep 26, 2025
72ca42a
feat: add astjson & ArenaResolveGraphQLResponse
jensneuse Oct 15, 2025
20bf416
chore: refactor & simplify DataSource interface
jensneuse Oct 15, 2025
3142c90
chore: implement weak arena pool
jensneuse Oct 15, 2025
1c9b877
chore: default buffer size
jensneuse Oct 15, 2025
112171e
chore: move single flight into loader
jensneuse Oct 16, 2025
7a777ea
chore: add http client buffer size hint
jensneuse Oct 16, 2025
c41b4b6
chore: selectItems on arena
jensneuse Oct 16, 2025
3e1454f
chore: refactor arena pool into separate file
jensneuse Oct 17, 2025
a41ec06
refactor: update buffer size in HTTP client and enhance arena pool si…
jensneuse Oct 19, 2025
ced27f3
chore: add second arena for response buffer
jensneuse Oct 20, 2025
67db907
chore: add headers to DataSource args, add HeadersForSubgraphRequest …
jensneuse Oct 24, 2025
26f22b3
chore: rename HeadersForSubgraphRequest to SubgraphHeadersBuilder
jensneuse Oct 24, 2025
4392770
chore: fix bug
jensneuse Oct 24, 2025
94f3d27
chore: use are to execute subscription updates
jensneuse Oct 25, 2025
a1ed93e
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Oct 25, 2025
e7407d1
chore: merge main
jensneuse Oct 25, 2025
60b5c3b
chore: update deps
jensneuse Oct 25, 2025
3fb0272
chore: add comments
jensneuse Oct 25, 2025
bb33b4b
chore: set content length correctly
jensneuse Oct 25, 2025
bb31735
chore: fix bench
jensneuse Oct 25, 2025
ce83a7b
chore: fix lint
jensneuse Oct 25, 2025
5cfd72d
chore: fix lint
jensneuse Oct 25, 2025
4d4b4c5
chore: cleanup & comments
jensneuse Oct 26, 2025
48de651
chore: refactor
jensneuse Oct 26, 2025
6653948
chore: refactor & comments
jensneuse Oct 26, 2025
6cbfed0
chore: remove unused ParallelListItemFetch
jensneuse Oct 26, 2025
daa18e8
chore: simplify batchStats logic
jensneuse Oct 27, 2025
2003186
chore: simplify
jensneuse Oct 27, 2025
0c0e1ce
chore: add tools pool for loadBatchEntityFetch
jensneuse Oct 27, 2025
8e3d0df
chore: improved cleanup
jensneuse Oct 27, 2025
f3f2a8e
chore: refactor, docs, inbound sf
jensneuse Oct 27, 2025
cd59d03
chore: refactor
jensneuse Oct 27, 2025
c579f48
chore: fmt
jensneuse Oct 27, 2025
319126c
chore: fix test
jensneuse Oct 27, 2025
0bf8fb3
chore: refactor
jensneuse Oct 28, 2025
1ae36b4
chore: refactor
jensneuse Oct 28, 2025
57e688c
chore: allow single flight in loader for sub Queries, even if root op…
jensneuse Oct 28, 2025
2e77668
Merge branch 'feat/improve-memory-usage-with-arenas' into feat/add-ca…
jensneuse Oct 28, 2025
a5e6289
chore: merge main
jensneuse Oct 28, 2025
8f3e30f
chore: improve arena pool & add tests
jensneuse Oct 29, 2025
3df9e01
chore: use arena in Walker
jensneuse Oct 29, 2025
aa789e0
chore: fix lint
jensneuse Oct 29, 2025
3e96846
Merge branch 'feat/improve-memory-usage-with-arenas' into feat/add-ca…
jensneuse Oct 29, 2025
6d40307
chore: fix test with cache key
jensneuse Oct 29, 2025
9d802ac
chore: implement multi cache keys
jensneuse Oct 30, 2025
789f125
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Oct 30, 2025
8ec2670
chore: refactor cache keys
jensneuse Oct 30, 2025
e15c01f
chore: refactor cache key tests
jensneuse Oct 30, 2025
9a4ba5b
chore: refactor execution cache test for miss then hit
jensneuse Oct 30, 2025
7547964
chore: expand federation caching tests
jensneuse Oct 30, 2025
5ce59ba
chore: don't save to cache when we didn't fetch from origin
jensneuse Oct 30, 2025
6993761
chore: lint
jensneuse Oct 30, 2025
ca8a003
chore: refactor key handling
jensneuse Oct 31, 2025
d5e60ba
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Oct 31, 2025
d8f04ca
chore: refactor arena handling
jensneuse Nov 2, 2025
63e8b1e
Merge branch 'feat/improve-memory-usage-with-arenas' into feat/add-ca…
jensneuse Nov 2, 2025
648dd02
chore: add resolve caching test
jensneuse Nov 12, 2025
dd00412
chore: use sync.Map, cleanup
jensneuse Nov 14, 2025
57b8680
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Nov 14, 2025
65e3d92
chore: use assert.Len
jensneuse Nov 18, 2025
a826d98
chore: improve file handling
jensneuse Nov 18, 2025
d2dfbde
chore: move arena pool into go-arena package
jensneuse Nov 18, 2025
3fa6b28
chore: refactor rewriteErrorPaths
jensneuse Nov 18, 2025
01ddbb1
chore: cleanup
jensneuse Nov 18, 2025
f81e253
chore: fmt
jensneuse Nov 18, 2025
c256696
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Nov 18, 2025
2ccc28c
chore: update comment
jensneuse Nov 18, 2025
32a3368
chore: address feedback
jensneuse Nov 24, 2025
771ba94
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Nov 24, 2025
9e6c198
chore: merge main
jensneuse Nov 24, 2025
5304ba1
chore: improve prepareTrigger
jensneuse Nov 26, 2025
c8b5567
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Nov 26, 2025
f9177fb
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Dec 4, 2025
d3059f4
chore: merge main
jensneuse Dec 4, 2025
a6c9da8
chore: add ResolveDeduplicated to GraphQLResolveInfo
jensneuse Dec 4, 2025
85774fa
chore: fmt
jensneuse Dec 4, 2025
da53e7b
chore: improve hashing of keys
jensneuse Dec 8, 2025
5ae1a16
chore: fmt
jensneuse Dec 8, 2025
a4ec426
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Dec 8, 2025
70eb518
chore: fmt
jensneuse Dec 8, 2025
1526767
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Dec 12, 2025
7f07244
chore: lazy init subgraphErrors
jensneuse Dec 17, 2025
fef1916
chore: allow configuring deduplication shards
jensneuse Dec 17, 2025
1a112bd
chore: cleanup
jensneuse Dec 17, 2025
a634eeb
chore: improve test structure
jensneuse Dec 17, 2025
2a9e1af
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Dec 17, 2025
2583773
chore: fix copy paste issue
jensneuse Dec 17, 2025
c9be423
Merge branch 'wg-master' into feat/improve-memory-usage-with-arenas
jensneuse Jan 8, 2026
50182ba
Merge branch 'feat/improve-memory-usage-with-arenas' into feat/add-ca…
jensneuse Jan 10, 2026
86b7b60
chore: merge main
jensneuse Jan 10, 2026
b9fd934
chore: add caching unit tests
jensneuse Jan 10, 2026
dea4fda
feat: implement L1 & L2 caching
jensneuse Jan 12, 2026
3b42389
feat: make L2 caching opt-in per subgraph
jensneuse Jan 14, 2026
0763b61
feat: extend L1 caching for interfaces & unions
jensneuse Jan 17, 2026
d88bd39
fix: clear RootFieldL1EntityCacheKeyTemplates in test fixtures
jensneuse Feb 3, 2026
02044e7
feat: add detailed documentation for L1/L2 caching architecture and c…
jensneuse Feb 3, 2026
39ffbc0
feat: enhance L1 caching tests with detailed assertions and scenarios
jensneuse Feb 4, 2026
15aafd4
feat: add error handling behavior for GraphQL resolution
jensneuse Feb 4, 2026
8dfaba3
Merge remote-tracking branch 'origin/feat/add-caching-support' into f…
jensneuse Feb 4, 2026
51008ac
feat: implement cache error handling and add reviewWithError query fo…
jensneuse Feb 4, 2026
a5011de
feat: implement partial entity cache loading for batch fetches
jensneuse Feb 5, 2026
b1dfbd8
refactor: fix variable shadowing and optimize map allocation
jensneuse Feb 5, 2026
577c10c
feat: add L1 cache optimization postprocessor
jensneuse Feb 5, 2026
2871586
refactor: remove dead code and optimize byte comparison
jensneuse Feb 5, 2026
0192123
refactor: unify L1/L2 cache keys to use only @key fields
jensneuse Feb 5, 2026
d96ee45
feat: add go-arena dependency and replace graphql-go-tools path
jensneuse Feb 6, 2026
2422f04
Merge remote-tracking branch 'origin/feat/add-caching-support' into f…
jensneuse Feb 6, 2026
4566ffd
test: add unit tests for EntityMergePath cache key extraction and wra…
jensneuse Feb 9, 2026
143d08b
test: improve EntityMergePath test assertions and documentation
jensneuse Feb 9, 2026
64cade0
feat: add better support for root field caching
jensneuse Feb 9, 2026
5667988
style: use assert.True/False for boolean assertions in EntityMergePat…
jensneuse Feb 9, 2026
2cf3eb2
feat: enhance caching support with debug mode, disallow mutation cach…
jensneuse Feb 10, 2026
5a5c692
feat: add subscription entity cache population and invalidation
jensneuse Feb 16, 2026
27dd39f
fix: nil pointer in debug mode, map bounds check, and safety guards
jensneuse Feb 16, 2026
cc9b20a
style: use exact cache log assertions and add doc comments
jensneuse Feb 16, 2026
53d8052
docs: improve doc comments based on code review
jensneuse Feb 16, 2026
f910dcc
test: add unit tests for handleTriggerEntityCache
jensneuse Feb 16, 2026
a300130
feat: add cache analytics system with L1/L2 event tracking
jensneuse Mar 3, 2026
0156aad
fix: resolve post-rebase test failures from remote changes
jensneuse Mar 3, 2026
870df90
refactor: review improvements — exact assertions, dedup cache update,…
jensneuse Mar 3, 2026
177f9a9
feat: normalize cache keys by alias for correct L1/L2 entity caching
jensneuse Mar 3, 2026
9d955e9
fix: address review findings in cache alias normalization
jensneuse Mar 3, 2026
20bf2d4
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 3, 2026
163cb89
test(caching): add alias cache test coverage (#1417)
jensneuse Mar 4, 2026
aaf9b63
fix(caching): update test expectations for cache analytics (#1416)
jensneuse Mar 4, 2026
d28c07f
fix: use uppercase Query in service_datasource error message
jensneuse Mar 4, 2026
fc3f72f
fix: lowercase error message and test expectations per Go conventions
jensneuse Mar 4, 2026
de5f68b
test(federation): add e2e test for L1 cache with non-entity root fiel…
jensneuse Mar 4, 2026
e1e36d1
test(caching): document nested entity L1 cache behavior (#1421)
jensneuse Mar 4, 2026
ae8725d
feat(cache): add mutation-triggered L2 cache invalidation (#1420)
jensneuse Mar 4, 2026
b56e3fc
feat(cache): add L2CacheKeyInterceptor for custom cache key transform…
jensneuse Mar 4, 2026
11a413f
feat: add per-mutation-field control over L2 cache population (#1419)
jensneuse Mar 4, 2026
031361b
feat: enrich FetchTimingEvent with HTTP status and response size for …
jensneuse Mar 4, 2026
b36169c
feat(plan): auto-split root field datasources in NewPlanner (#1422)
jensneuse Mar 5, 2026
ef82a19
feat(cache): add subgraph cache invalidation via response extensions …
jensneuse Mar 5, 2026
911c719
feat(cache): entity field argument-aware caching via xxhash suffix (#…
jensneuse Mar 5, 2026
9a8682e
feat(cache): add header impact analytics for unnecessary header forwa…
jensneuse Mar 6, 2026
bdd700b
docs: comprehensive caching and resolve package documentation (#1433)
jensneuse Mar 6, 2026
f5301e4
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 6, 2026
ab757a1
fix(test): stabilize flaky websocket subscription tests
jensneuse Mar 6, 2026
683d690
test(cache): add comprehensive unit tests for cache functions (#1434)
jensneuse Mar 6, 2026
1ad5a75
feat(cache): negative caching, goroutine arenas, global key prefix, c…
jensneuse Mar 6, 2026
f6cafa7
test(resolve): add race detector test for parallel entity fetches (#1…
jensneuse Mar 7, 2026
8ed84b1
docs(resolve): update CacheOperationError comment for set_negative (#…
jensneuse Mar 9, 2026
e5de17a
Merge remote-tracking branch 'origin/master' into jensneuse/pull-late…
jensneuse Mar 12, 2026
031a13b
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 13, 2026
71ea6a8
Merge remote-tracking branch 'origin/master' into jensneuse/pull-late…
jensneuse Mar 13, 2026
5c06659
Merge remote-tracking branch 'origin/feat/add-caching-support' into j…
jensneuse Mar 13, 2026
53604f8
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 18, 2026
853d603
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 18, 2026
fdab6eb
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 19, 2026
730933a
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 20, 2026
fd7e463
chore: cleanup docs
jensneuse Mar 23, 2026
bbda9d3
fix: setNestedKey merges shared-prefix dot-notation keys
jensneuse Mar 25, 2026
2f352ef
docs: add shared-prefix dot-notation test to acceptance criteria
jensneuse Mar 25, 2026
ce7142a
feat: add cache invalidation support for mutations and subscriptions …
jensneuse Mar 25, 2026
f98a442
feat: add cache trace information to response extensions
jensneuse Mar 25, 2026
59006c3
chore: update docs
jensneuse Mar 25, 2026
8cdfcbb
docs: update testing conventions and add GraphQL framework overview
jensneuse Mar 25, 2026
0d5555e
chore: cleanup unnecessary file
jensneuse Mar 25, 2026
b4c2e60
chore: enhance caching support with entity key mappings and improved …
jensneuse Mar 26, 2026
a5a0cbe
chore: add cache trace information and support for root field entity …
jensneuse Mar 26, 2026
aede3a3
test: add unit tests for multi-key entity mapping with flat, composit…
jensneuse Mar 26, 2026
5373f35
test: add E2E tests for multi-key entity caching scenarios
jensneuse Mar 26, 2026
c0b8340
test: use require.NoError, add RemapVariables coverage for multi-key …
jensneuse Mar 26, 2026
10d1376
docs: update acceptance criteria and integration guide for multi-key …
jensneuse Mar 26, 2026
f613a61
refactor: split CacheHitCount into L1HitCount and L2HitCount
jensneuse Mar 27, 2026
c3ea98a
refactor: use single atomic pointer for circuit breaker state
jensneuse Mar 27, 2026
37b5386
test: add concurrency correctness tests for circuit breaker
jensneuse Mar 27, 2026
36e8c6e
refactor: remove trivial buildMutationEntityDisplayKey wrapper
jensneuse Mar 27, 2026
f0b3f6f
refactor: move buildEntityKeyValue to Loader method
jensneuse Mar 27, 2026
c72a7ef
chore: simplify field value resolution and update error messages for …
jensneuse Mar 27, 2026
30c7472
chore: enable parallel execution for various test cases and improve r…
jensneuse Mar 27, 2026
934d7d2
chore: add caching support for entity key mappings and improve cache …
jensneuse Mar 30, 2026
69ba79a
chore: enhance caching logic with missing key tracking and write reasons
jensneuse Mar 30, 2026
1080b0f
Merge branch 'master' into feat/add-caching-support
jensneuse Mar 30, 2026
efb4719
chore: enhance cache entry structure with write reason and add cache …
jensneuse Mar 30, 2026
a634597
fix(resolve): normalize predictable cache trace timings
jensneuse Mar 30, 2026
fe3ceb2
chore: add TypeName fallback for cache keys when __typename is missing
jensneuse Mar 30, 2026
7ff82d0
fix(resolve): add reverse lookup for RemapVariables in renderDerivedE…
jensneuse Mar 30, 2026
72eb67a
fix(planner): resolve EntityKeyMapping ArgumentPath to actual variabl…
jensneuse Mar 31, 2026
88c96ff
fix(planner): propagate ShadowMode to root field FetchCacheConfiguration
jensneuse Mar 31, 2026
c13ffd5
fix(resolve): enable shadow mode for root field cache lookups and sim…
jensneuse Mar 31, 2026
c8d9b70
feat: support root field multi entity fetch with cache
jensneuse Mar 31, 2026
86fe5a2
chore: improve tests
jensneuse Apr 1, 2026
7e3566b
test: enhance caching tests for positive root payload retrieval
jensneuse Apr 1, 2026
aff5916
test: refactor subscription caching test to solve flakiness
jensneuse Apr 2, 2026
c9a1ad4
test: stabilize subscription caching flake
jensneuse Apr 2, 2026
3877537
feat(caching): unify entity cache transform pipeline and add request-…
jensneuse Apr 19, 2026
1b9c0d9
chore: update docs, module files, and workspace config
jensneuse Apr 19, 2026
53e0625
Merge remote-tracking branch 'origin/master' into feat/add-caching-su…
jensneuse Apr 19, 2026
6222b00
review: address ysmolski + CodeRabbit feedback on #1259
jensneuse Apr 19, 2026
e3b5808
chore: update .gitignore to exclude .serena files
jensneuse Apr 19, 2026
480ece2
review: address second-round PR #1259 feedback (phases 1+2)
jensneuse Apr 19, 2026
26c33b9
fix: stabilize cache merge ordering
jensneuse Apr 19, 2026
5596ef0
fix: clone shared slices in CacheAnalyticsCollector.Snapshot
jensneuse Apr 19, 2026
a05c2c4
test: avoid pool pollution in TestSnapshotSlicesAreIndependent
jensneuse Apr 19, 2026
771759b
fix: ensure L2 cache respects configuration settings in mutation hand…
jensneuse Apr 19, 2026
f6213a7
Merge branch 'master' into feat/add-caching-support
jensneuse Apr 20, 2026
85fb34e
Add request-scoped widening coverage for requires chains
jensneuse Apr 22, 2026
7c096c3
Merge branch 'feat/add-caching-support' of https://github.com/wunderg…
jensneuse Apr 22, 2026
dd39ecd
Merge master into feat/add-caching-support
jensneuse Apr 22, 2026
20ea42b
test: make request-scoped e2e server handler goroutine-safe
jensneuse Apr 23, 2026
0f049c3
fix: emit MutationEvent for extension-driven cache invalidation
jensneuse Apr 24, 2026
b4e7b4c
fix: clear fieldPlanners in EnterDocument to prevent reuse contamination
jensneuse Apr 24, 2026
bb70b0b
test: add cross-cutting cache-key parity regression
jensneuse Apr 24, 2026
77ea732
docs(claude.md): expand testing conventions with E2E rules and LLM se…
jensneuse Apr 27, 2026
2427062
refactor(cache): per-entry TTL on CacheEntry, bulk L2 Set, Items log …
jensneuse Apr 27, 2026
dd589f8
docs: clarify exported public-API contract for cosmo-only symbols
jensneuse Apr 27, 2026
923b742
refactor(plan): extract caching state out of Visitor into cachingPlan…
jensneuse Apr 27, 2026
ff73a89
fix(test): make extensions analytics test tolerant of nil snapshot slice
jensneuse Apr 27, 2026
9b7d14f
test: address coderabbit feedback on PR #1259 review round 2
jensneuse Apr 27, 2026
f1433a5
Merge remote-tracking branch 'origin/master' into feat/add-caching-su…
jensneuse Apr 27, 2026
2a63446
test: assert seed cache state before ClearLog (cache log rule)
jensneuse Apr 27, 2026
234eda9
test: address PR #1259 review round 3 feedback (E2E test conventions)
jensneuse Apr 28, 2026
ead3ca8
Merge branch 'master' into feat/add-caching-support
jensneuse Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
.idea/*
.vscode/*
.serena
*.out
*.test
.DS_Store
pkg/parser/testdata/lotto.graphql
*node_modules*
*vendor*
*vendor*
docs/superpowers/
1 change: 1 addition & 0 deletions AGENTS.md
283 changes: 283 additions & 0 deletions CLAUDE.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,7 @@ func ExampleExecuteOperation() {
switch p := preparedPlan.(type) {
case *plan.SynchronousResponsePlan:
out := &bytes.Buffer{}
err, _ := resolver.ResolveGraphQLResponse(ctx, p.Response, nil, out)
_, err := resolver.ResolveGraphQLResponse(ctx, p.Response, out)
if err != nil {
panic(err)
}
Expand Down
1,240 changes: 1,240 additions & 0 deletions docs/entity-caching/ENTITY_CACHING_ACCEPTANCE_CRITERIA.md

Large diffs are not rendered by default.

Loading
Loading