Architecture decision records
Each record states one decision, the alternatives that were considered and the evidence that accepted it. All records listed here are accepted and in force; a later record that amends an earlier one says so. Records 0001–0010 predate the public repository and are not published; their invariants are summarized in the architecture overview.
Foundation and EF Core integration
| Record |
Decision |
| ADR-0011 |
Version baseline and execution gates: exact .NET, EF Core and Neo4j.Driver pins, and what must pass before a feature counts |
| ADR-0012 |
EF query adapter and the initial compatibility boundary |
| ADR-0013 |
Async node persistence, optimistic concurrency and transaction ownership |
| ADR-0025 |
EF finder value equality |
| ADR-0029 |
Prepare immutable read slots before enumeration |
| ADR-0035 |
Retain prepared Cypher in EF compiled delegates |
| ADR-0037 |
Retain asynchronous-only persistence |
Graph storage
| Record |
Decision |
| ADR-0014 |
EF join-entry observation supports native relationships |
| ADR-0015 |
Explicit directed association metadata |
| ADR-0016 |
Identified relationships and native Cypher results |
| ADR-0021 |
Native storage for ordinary node foreign keys (references) |
| ADR-0032 |
Optional native references remain dependent-owned graph membership |
Schema and migrations
| Record |
Decision |
| ADR-0017 |
Storage witnesses and explicit schema comparison |
| ADR-0018 |
Migration journal and recovery boundaries |
| ADR-0036 |
A bounded design-time command subset |
Querying
| Record |
Decision |
| ADR-0023 |
Explicit server EXPLAIN without query execution |
| ADR-0024 |
Bounded scalar Contains with explicit equality semantics |
| ADR-0027 |
Nullable scalar contracts and literal Guid construction |
| ADR-0030 |
Construct DTO projections through the existing EF shaper |
| ADR-0031 |
Validate integer extrema inputs within the aggregate statement |
| ADR-0033 |
Explicit typed native search with observed index provenance |
| ADR-0034 |
Bounded native paths with typed projections and explicit direction |
| ADR-0038 |
Bounded untracked bulk mutation batches |
| ADR-0045 |
Native DateTimeOffset payloads with explicit query semantics |
Fluent Cypher
| Record |
Decision |
| ADR-0041 |
Explicit native Cypher clauses beside EF LINQ |
| ADR-0047 |
C# predicate lambdas under an agree-or-reject rule (amends 0041) |
| ADR-0048 |
Aggregates and bounded collect (extends 0041) |
Transactions and observability
| Record |
Decision |
| ADR-0026 |
Uncertain commit verification and replay contract |
| ADR-0028 |
Correlated runtime tracing with value-free events |
| Record |
Decision |
| ADR-0019 |
Optional ontology compilation into the EF model |
| ADR-0020 |
Database-first observations and reviewed tracking proposals |
| ADR-0022 |
Optional attributed mapping generation with finalized-model verification |
| ADR-0039 |
Explicit mapping diagnostics and schema responsibility |
| ADR-0040 |
Offline database-first review between explicit versions |
| Record |
Decision |
| ADR-0042 |
Application-hosted evidence tools (Doctor and Verify) |
| ADR-0043 |
Typed compiler snapshots for the static Query Lab report |
| ADR-0044 |
A read-only compatibility probe for Neo4j 5.26 |
| ADR-0046 |
Integrated VS Code Query Lab with application-owned capture |
Investigations behind some records: EF service map (internal EF APIs the provider depends on) and the join-entry experiment behind ADR-0014.