Priority: P0
Difficulty: Advanced
Context: Current main path uses in-process MemoryGraph; GraphComputeEngine is an empty interface. Phase 1 needs a backend boundary so local persistence and a GeaFlow vertical slice can share contracts.
Scope:
- Define
GraphBackend interface for upsert vertex, upsert edge, delete, scan, get schema, and transaction boundary.
- Define capability flags: local, persistent, distributed, supports checkpoint, supports tenant scope.
- Add contract tests using an in-memory fake backend.
Constraints:
- Do not replace
MemoryGraph everywhere in this issue.
- Do not claim distributed production capability.
- Public SPI needs maintainer review.
Acceptance Criteria:
- A fake backend passes contract tests.
- Existing
GraphAccessor integration path can be adapted later without breaking tests.
Suggested paths:
geaflow-ai/src/main/java/org/apache/geaflow/ai/backend
Priority: P0
Difficulty: Advanced
Context: Current main path uses in-process
MemoryGraph;GraphComputeEngineis an empty interface. Phase 1 needs a backend boundary so local persistence and a GeaFlow vertical slice can share contracts.Scope:
GraphBackendinterface for upsert vertex, upsert edge, delete, scan, get schema, and transaction boundary.Constraints:
MemoryGrapheverywhere in this issue.Acceptance Criteria:
GraphAccessorintegration path can be adapted later without breaking tests.Suggested paths:
geaflow-ai/src/main/java/org/apache/geaflow/ai/backend