Skip to content

TaskHub-Server/TaskHub.Shared

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskHub.Shared

TaskHub.Shared is the core foundation of the TaskHub ecosystem — a collection of lightweight, reusable building blocks that power all TaskHub 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.Primitives — Core value objects, identifiers, and base types shared across all domains.
  • TaskHub.Shared.Response — Unified result system (Result, ValueResult<T>, ResultFactory) for consistent success/error handling.
  • TaskHub.Shared.Commands.Abstractions — Abstractions for the command pipeline (interfaces for command handlers, behaviors, buses).
  • TaskHub.Shared.Commands.Bus — Default in-process command bus implementation with behavior orchestration.
  • TaskHub.Shared.Events.Abstractions — Domain event abstractions for cross-service communication.
  • TaskHub.Shared.Persistence.Abstractions — Interfaces for read/write repositories, unit of work, and persistence contracts.
  • TaskHub.Shared.Infrastructure.EfCore — EF Core helpers, interceptors, and base configurations for database integration.
  • TaskHub.Shared.Redis — Integration with Redis for caching and distributed state management.
  • TaskHub.Shared.OpenTelemetry — Preconfigured telemetry setup for metrics, traces, and logs (Tempo, Prometheus, Loki).
  • TaskHub.Shared.Swagger — Common Swagger and API documentation configuration for ASP.NET Core services.
  • TaskHub.Shared.GeoCoding.Abstractions — Abstractions for geocoding providers.
  • TaskHub.Shared.GeoCoding.Nominatim — Implementation of the geocoding service using the Nominatim API.
  • TaskHub.Shared.GeoCoding.Bootstraper — Provides a lightweight entry-point that simplifies service startup and composition across TaskHub microservices..

Design Principles

  • DDD & Clean Architecture — separation between abstractions and implementations.
  • Lightweight by Design — each project compiles into a minimal, focused package.
  • Composability — services import only the shared modules they depend on.
  • Cross-Service Consistency — unified patterns for results, commands, events, and telemetry.