Skip to main content

Cross-Cutting Concepts Overview

This section describes the cross-cutting concepts that are implemented across all services in the BookWorm application. These concepts ensure consistency, maintainability, and operational excellence throughout the system.

Architecture Components

The BookWorm application implements cross-cutting concerns through two main components:

BookWorm.Chassis

A comprehensive building block library that provides core functionality for all microservices, including:

  • CQRS Pattern Implementation - Command and Query separation with MediatR
  • Event-Driven Architecture - Integration events with MassTransit and RabbitMQ
  • Database Access - Repository pattern with Entity Framework Core and PostgreSQL
  • Domain-Driven Design - Specifications, guards, and domain abstractions
  • AI Integration - Semantic Kernel, Ollama, and RAG capabilities
  • Exception Handling - Centralized error management and custom exceptions
  • API Endpoints - Minimal APIs with automatic registration and versioning
  • Data Serialization - JSON converters and type transformation
  • Guards & Defensive Programming - Input validation and security guards
  • Repository & Specifications - Data access abstraction with query composition

BookWorm.ServiceDefaults

Aspire-based service defaults that standardize common configurations:

  • Authentication & Authorization - Keycloak integration with JWT tokens
  • Service Discovery - Aspire service discovery for microservice communication
  • Health Checks - Comprehensive health monitoring endpoints
  • OpenAPI Documentation - Automated API specification generation
  • Telemetry - OpenTelemetry integration for observability
  • Rate Limiting & CORS - API protection and cross-origin resource sharing
  • HTTP Client Configuration - Resilient HTTP communication patterns