GraphlessDB is an open source serverless graph database built upon AWS DynamoDB.
GraphlessDB is organized into a clean layered architecture with clear separation of concerns and one-way dependencies:
Core utilities and extensions with no domain dependencies:
- Collections (immutable lists, dictionaries, trees)
- Threading utilities (retry, lock)
- LINQ extensions
Storage contracts and models:
- RDF triple models and predicates
- Storage interfaces (
IRDFTripleStore,IMemoryCache) - Request/response DTOs
- Base exceptions
Pluggable storage providers (each in separate project):
- GraphlessDB.Storage.InMemory - In-memory storage for development/testing
- GraphlessDB.Storage.FileBased - File-based persistence
- GraphlessDB.DynamoDB - Production-grade AWS DynamoDB backend with optional transactions
Graph-specific domain logic:
- Domain models (
INode,IEdge) - Cursor types for pagination
- Graph services (partitioning, serialization, schema)
- Domain exceptions
Query execution layer:
- Query models and filters
- Query execution services
- Connection queries (fluent API)
- Graph query executors
Clean public-facing API:
IGraphDBandGraphDBmain interfaces- Dependency injection extensions
- Service registration
GraphlessDB (Public API)
└── GraphlessDB.Query
└── GraphlessDB.Domain
└── GraphlessDB.Storage ← GraphlessDB.Storage.InMemory
└── GraphlessDB.Core ← GraphlessDB.Storage.FileBased
← GraphlessDB.DynamoDB
All dependencies flow downward (one-way), ensuring clean separation and easy testability.