The repository ships two implementations of the same architecture, released together on a single aligned version line: the .NET implementation targets .NET 9, and the Java implementation targets Java 21 (Maven, groupId io.github.cristianbarragan). Except where noted below, everything on this page applies to both.
This page is intentionally short: it describes the current architectural state rather than preserving historical release notes.
The active source tree contains the following layers:
Around that core are:
Metadata
AOT / source generation
JSON
GraphQL
MCP
AI
Security.Authority
The semantic layer currently covers:
The planner currently provides:
Foundgine.Core.Execution provides:
Foundgine.Providers.Storage.Sql (foundgine-providers / com.foundgine.providers.storage.sql in Java) provides the primary SQL implementation and PostgreSQL-specific functionality, including:
Fuzzy (pg_trgm), FullText (tsvector), optional Search (pg_search/BM25), and optional GraphSimilarity (Apache AGE);Both implementations carry ParityTest-style tests asserting the SQL provider behaves identically across languages (compilation, cursor authorization, execution evidence, batched mutation, storage-name quoting, upsert).
Foundgine.Providers.Storage.InMemory (com.foundgine.providers.storage.inmemory in Java) is a deliberately limited provider used to validate provider independence and support deterministic tests/examples, in both implementations.
Hot Chocolate adapters translate GraphQL into Foundgine semantic operations. Dedicated execution packages establish the secure host-owned execution boundary. This adapter is .NET-only — Java has no GraphQL adapter at this time.
Foundgine.Core.Serialization (com.foundgine.core.serialization in Java) parses structured read intent with explicit complexity limits, in both implementations.
Foundgine.Providers.Tools.MCP (com.foundgine.providers.tools.mcp in Java) exposes capability discovery, read intent, and optional mutation dry-run/approval/execution tools through MCP, in both implementations.
Foundgine.Providers.Models integrates with Microsoft.Extensions.AI and exposes Foundgine operations as model tools while keeping authority host-owned. This adapter is .NET-only — Java exposes the same capabilities through its JSON intent and MCP adapters instead.
Foundgine.Providers.Aot provides compile-time declarations and runtime support, while Foundgine.Providers.Aot.Generator provides deterministic source-generated metadata via Roslyn. The former Foundgine.Experimental package has been removed entirely.
The Java implementation achieves the same compile-time-metadata outcome through annotation processing: @FoundgineEntity/@FoundgineRelationship/@FoundgineAlias annotations are processed by the foundgine-aot-generator module (also vendored under foundgine-providers/aot) to produce deterministic generated metadata, with parity tests asserting identical semantic-identity output to the .NET generator.
The security model is based on these invariants:
Capability discovery is advisory.
Authentication and identity lifecycle remain application/host responsibilities.
Foundgine.Runtime.ControlPlane (com.foundgine.runtime.controlplane in Java) is optional and outside the core, in both implementations.
The core libraries (foundgine-core, foundgine-runtime, foundgine-providers, foundgine-extensions) and the foundgine-redteam security module are at parity with .NET, verified by matching *ParityTest suites. The Foundgine.SupplyChain.Advanced sample’s OpenIntent-specific tests and MCP-penetration tests are also now at parity (OpenIntentSupplyChainParityTest, OpenIntentMutationSecurityParityTest, AuthorizationMcpPenetrationParityTest). The following are not yet ported to Java:
Foundgine.SupplyChain.Advanced sample’s retrieval-strategy tests (fuzzy/full-text, pg_search/BM25, Apache AGE graph-similarity, and retrieval-capability selection);AgentEndToEnd Supply Chain benchmark harness (the SupplyChain.Layered fixture and Run1–Run5 orchestration) — only the HighAssurance.Postgres/TransferFunds banking fixture has a Java equivalent, under benchmarks/foundgine-agent;security/pentest module (the 14-case GraphQL+MCP PenTest harness).The advanced sample’s ambiguity-resolution capability (find_top_supplier_overdue_orders) has also been ported, as TopSupplierOverdueOrdersService hand-registered into AdvancedMcpServer, backed by new suppliers/purchase_orders tables in the sample’s Postgres schema. Unlike the rest of that port, this one is unverified against a live database — there is no Postgres available in the environment it was written in, so it has not been run. It also knowingly simplifies one thing versus the C# original: the returned plan fingerprint is a stable hash of the fixed Supplier read shape rather than a real SemanticPlan/ExecutionIRCompiler-derived fingerprint, since wiring that whole chain for one demo capability was out of scope. Treat this port as a draft to verify, not as parity-tested.
Foundgine does not claim to be:
Those are intentionally outside the core boundary.
For implementation behavior use:
src/csharp/ for .NET, src/java/ for Java);src/csharp/ and src/java/;Historical release notes and benchmark snapshots have been removed from the active documentation set to avoid presenting old behavior as current.
Next: Roadmap