A scalable, modular, institution-grade DeFi platform for storing, querying, and archiving diverse market data objects, optimized for derivative pricing and market tracking.
Built on Azure services with a .NET 9 backend, following Clean/Hexagonal Architecture principles.
VeritasVault stores various types of market data — spot prices, forward curves, yield curves, and volatility surfaces — in Azure Cosmos DB for hot storage, with long-term archival to Azure Data Lake.
- Phase 1: Temporal Data (Official, Intraday) — CosmosDB storage (In Progress)
- Phase 2: Live Data (Streaming, Latest Value Only) — CosmosDB optimized container
- Phase 3: Archival to Azure Data Lake — cold storage for historical analytics
The platform follows Clean/Hexagonal/Onion Architecture principles with clear separation of concerns:
┌───────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ (vv.Api, vv.Functions) │
└──────────────────────────┬────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────┐
│ Application Layer │
│ (vv.Application) │
└───────────────┬───────────────────────────┬───────────────┘
│ │
▼ ▼
┌───────────────────────────┐ ┌───────────────────────────┐
│ Domain Layer │◄──│ Infrastructure Layer │
│ (vv.Domain, vv.Core, │ │ (vv.Infrastructure, │
│ vv.Data) │ │ vv.Data) │
└───────────────────────────┘ └───────────────────────────┘
vv/
├── src/
│ ├── vv.Api/ # ASP.NET Core Web API controllers and services
│ ├── vv.Application/ # Application services, commands, queries, handlers
│ ├── vv.Core/ # Cross-cutting concerns, configuration, validation
│ ├── vv.Data/ # Data access utilities and repository helpers
│ ├── vv.Domain/ # Domain entities, value objects, interfaces (ports)
│ ├── vv.Functions/ # Azure Functions for background processing
│ └── vv.Infrastructure/ # External service implementations (Cosmos DB, etc.)
├── tests/
│ ├── vv.Api.Tests/ # API layer tests
│ ├── vv.Application.Tests/# Application layer tests
│ └── vv.Infrastructure.Tests/ # Infrastructure layer tests
├── docs/ # Technical documentation
├── scripts/ # Build and utility scripts
└── vv.Platform.sln # Visual Studio solution file
| Component | Technology |
|---|---|
| Runtime | .NET 9.0 |
| Web API | ASP.NET Core |
| Serverless | Azure Functions |
| Database | Azure Cosmos DB (Core SQL API) |
| Messaging | Azure Event Grid |
| Resilience | Polly |
| CQRS/Mediator | MediatR |
| Code Quality | Prettier, Husky |
- .NET 9.0 SDK or later
- Node.js 18+ (for tooling)
- Azure Cosmos DB Emulator (for local development)
-
Clone the repository:
git clone https://github.com/JustAGhosT/vv.git cd vv -
Install Node.js dependencies (for linting/formatting):
npm install
-
Restore .NET packages and build:
dotnet restore dotnet build
-
Run tests:
dotnet test
# Run all tests
dotnet test
# Run specific test project
dotnet test tests/vv.Infrastructure.Tests
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"# Format all files
npm run lint| Entity | Description |
|---|---|
FxSpotPriceData |
Foreign exchange spot price data |
FxVolSurfaceData |
FX volatility surface data |
CryptoSpotPriceData |
Cryptocurrency spot price data |
CryptoOrdinalSpotPriceData |
Cryptocurrency ordinal spot price data |
CryptoOrderBookData |
Cryptocurrency order book data |
CryptoPerpetualData |
Cryptocurrency perpetual contract data |
All market data entities inherit from BaseMarketData and include:
Id- Computed unique identifierAssetId- Asset identifier (e.g., "EURUSD", "BTC")AssetClass- Classification (fx, crypto, equity, etc.)DataType- Type of data (price, volatility, etc.)Region- Geographic regionDocumentType- Document classification (official, intraday, etc.)AsOfDate- Business date of the dataVersion- Entity version for optimistic concurrencySchemaVersion- Schema version for evolution
| Design Choice | Details |
|---|---|
| Database | Azure CosmosDB (Core SQL API) |
| Partition Key | /assetId |
| Containers | marketdata-history (temporal), marketdata-live (live) |
| ID Format | <dataType>__<assetClass>__<assetId>__<region>__<date>__<documentType>__<schemaVersion>__<version> |
- Architecture Guide
- Domain Layer Documentation
- CosmosDB Setup Guide
- Architecture Implementation Guide
- Clean Architecture — Domain at the center, dependencies point inward
- CQRS — Separate read and write paths for scalability
- Domain-Driven Design — Rich domain models with business logic
- Immutability & Auditability — Every entity is versioned and tracked
- Defense-in-Depth — Multi-layered security controls
- Scalable by Design — Support for GB–TB data volumes
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary and unlicensed for public use.
🔵 Phase 1 - In Progress