Open
Conversation
Introduce EdgeCacheRecord wide-row model and wire CACHE step type into ActionbaseQuery.
em3s
reviewed
Mar 17, 2026
Comment on lines
+17
to
+18
| val createCacheRecords: List<EdgeCacheRecord> = emptyList(), | ||
| val deleteCacheRecordKeys: List<EdgeCacheRecord.Key> = emptyList(), |
Contributor
There was a problem hiding this comment.
Looks necessary, but feels out of scope here. Let’s track this separately.
em3s
reviewed
Mar 17, 2026
Contributor
There was a problem hiding this comment.
The tests ActionbaseQueryParserSpec.kt and ActionbaseQueryCacheE2ETest.kt are well written. Any changes not required to run these tests are out of scope for this PR.
Suggestions:
- Remove out-of-scope changes not required to run the two tests.
- Add a dedicated
/graph/v3/databases/{database}/tables/{table}/edges/cacheendpoint alongside get, scan, count, and agg, with tests. - Migrate ActionbaseQuery to v3 as a separate PR before this one, then update the tests to use it.
Remove EdgeCacheRecord, EdgeRecordType.EDGE_CACHE, EdgeMutationRecords cache fields, and V2BackedTableBinding TODO comments that are not required for the skeleton E2E tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Introduce GET /graph/v3/databases/{db}/tables/{table}/edges/cache/{cache}
endpoint as a stub returning empty results, preparing for Phase 1 implementation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
em3s
reviewed
Mar 18, 2026
| .scan(database, table, index, start, direction, limit, offset, ranges, filters, features) | ||
| .mapToResponseEntity() | ||
|
|
||
| @GetMapping("/graph/v3/databases/{database}/tables/{table}/edges/cache/{cache}") |
Contributor
There was a problem hiding this comment.
I'd like to rename the cache/{cache} endpoint. Here are the candidates:
lookup/{cache}— looking up a pre-built wide row structureseek/{cache}— pairs well withscan, same low-level DB terminologyhop/{cache}— reflects its role in multi-hop graph traversalwalk/{cache}— walking the graph step by step
Which do you prefer?
Contributor
Author
There was a problem hiding this comment.
@em3s
I prefer seek/{cache} — consistent with existing DB terminology, and jumping directly to a row key aligns well with EdgeCache wide-row lookups. What do you think?
Cache stub does not validate table existence, so expect 200 with empty result instead of 404. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2 tasks
Contributor
Author
|
@em3s
|
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.
Skeleton E2E for design alignment of the wide-row EdgeCache model (Phase 0 of #214).
This PR introduces the EdgeCache wide-row design and validates it end-to-end with mocks, covering metadata creation → data insertion → multi-hop query.
Step 1: Metadata Creation
Add
cachesfield to edge schema — defines cache name, sort fields, and row limit.Step 2: Data Insertion
Introduce
EdgeCacheRecordas a wide-row model — row key encodes source/table/direction/cache, qualifier holds sort values + target, value holds version + properties.Step 3: Multi-hop Query
Wire
CACHEstep type intoActionbaseQuery— resolves source references from previous hops and scans the EdgeCache row.EdgeCache Query Endpoint
Add a REST endpoint for single-key EdgeCache lookup.
curl -X GET "http://localhost:8080/graph/v3/databases/{database}/tables/{table}/edges/cache/{cache}?start={source}&direction=OUT&limit=10"How to test