TaskHub.Shared

TaskHub.Shared is a set of small, independent modules that act as the shared foundation for microservices.
It provides shared primitives, abstractions, contracts, and infrastructure adapters designed around Domain-Driven Design (DDD) and Clean Architecture principles.
Overview
TaskHub.Shared contains the fundamental components and patterns used across all bounded contexts in TaskHub.
Modules
- TaskHub.Shared.ValueObjects — Common value objects (e.g.,
Email, PhoneNumber, Address, Coordinates) used across services.
- TaskHub.Shared.Domain — Base entities, aggregates, domain events, and helpers for implementing rich domain models.
- TaskHub.Shared.Response — Unified result system (
Result, ValueResult<T>, ResultFactory) for consistent success/error handling.
- TaskHub.Shared.Abstractions — Common service interfaces for dependency inversion.
- TaskHub.Shared.Events.Abstractions — Domain event abstractions for cross-service communication and eventual consistency patterns.
Persistence
- TaskHub.Shared.Persistence.Abstractions — Interfaces for read/write repositories, unit of work, and persistence contracts.
- TaskHub.Shared.Persistence.EntityFramework — EntityFramework Core helpers, base configurations, and interceptors for database integration.
- TaskHub.Shared.Persistence.Outbox - Outbox pattern abstractions.
- TaskHub.Shared.Redis — Integration with Redis for caching and distributed state management.
Storage
- TaskHub.Shared.Storage.Abstractions — Abstractions for file/blob storage services.
- TaskHub.Shared.Storage.FileSystem — Implementation of file storage using the local file system.