Glossary
A
Aggregate : In Domain-Driven Design, a cluster of domain objects that can be treated as a single unit for data changes. An aggregate has one root entity through which all modifications must be made.
API Gateway : A server that acts as an entry point for clients to access backend services. It handles tasks such as request routing, authentication, rate limiting, and load balancing.
arc42 : A template for documentation and communication of software and system architectures. It provides a consistent structure with 12 main sections covering all important aspects of architecture documentation.
Azure Container Apps (ACA) : A managed container service from Microsoft Azure that enables deployment of containerized applications without managing underlying infrastructure.
AsyncAPI : A specification for describing event-driven architectures and asynchronous APIs, similar to OpenAPI but for message-based communication.
B
Basket Service : A microservice responsible for managing shopping carts and wishlists in the BookWorm e-commerce platform.
Building Block : In architecture documentation, a component or module that encapsulates a specific functionality and can be combined with other building blocks to create larger systems.
Business Logic : The part of a software application that encodes the real-world business rules and workflows that determine how data can be created, stored, and changed.
C
Catalog Service : A microservice that manages the book inventory, including books, authors, categories, and related metadata in the BookWorm platform.
Chat Service : A microservice providing real-time communication capabilities, including customer support chat and AI-powered chatbot functionality.
Circuit Breaker : A design pattern that prevents cascading failures in distributed systems by monitoring for failures and temporarily disabling failing services.
Cloud-Native : An approach to building and running applications that fully exploits the advantages of cloud computing, including scalability, resilience, and manageability.
Command Query Responsibility Segregation (CQRS) : An architectural pattern that separates read and write operations into different models, optimizing each for their specific use cases.
Container : A lightweight, portable unit that packages an application and its dependencies, enabling consistent deployment across different environments.
Correlation ID : A unique identifier passed through all parts of a transaction or request flow, enabling tracing and debugging across distributed systems.
D
Domain-Driven Design (DDD) : A software development approach that focuses on modeling the business domain and organizing code around business concepts rather than technical concerns.
Domain Event : An event that represents something significant that happened in the business domain, used to communicate changes between different parts of the system.
Docker : A platform for developing, shipping, and running applications using container technology.
E
Event Bus : A messaging infrastructure that enables services to communicate through events in an asynchronous, decoupled manner.
Event-Driven Architecture : An architectural pattern where components communicate through the production and consumption of events, enabling loose coupling and scalability.
Event Sourcing : A pattern where state changes are stored as a sequence of events, providing a complete audit trail and enabling temporal queries.
Event Store : A database optimized for storing and retrieving events in an event sourcing system.
Eventual Consistency : A consistency model where the system will become consistent over time, often used in distributed systems to achieve better availability and partition tolerance.
G
Gemma 3 : An AI language model used in BookWorm for generating intelligent chatbot responses and natural language processing tasks.
gRPC : A high-performance, language-agnostic remote procedure call (RPC) framework that uses HTTP/2 and Protocol Buffers.
H
Health Check : An endpoint or mechanism that reports the operational status of a service, used for monitoring and load balancing decisions.
HybridCache : A caching solution in .NET that combines multiple caching strategies for optimal performance and flexibility.
I
Inbox Pattern : A messaging pattern that ensures exactly-once processing of incoming messages by storing them in a database before processing.
Infrastructure as Code (IaC) : The practice of managing and provisioning infrastructure through machine-readable configuration files rather than manual processes.
Integration Test : Testing that verifies the interaction between different components or services to ensure they work correctly together.
J
JWT (JSON Web Token) : A compact, URL-safe token format used for securely transmitting information between parties as a JSON object.
K
Keycloak : An open-source identity and access management solution that provides authentication and authorization services.
L
Load Balancer : A component that distributes incoming requests across multiple server instances to ensure optimal resource utilization and high availability.
M
Microservices : An architectural style where applications are built as a collection of loosely coupled, independently deployable services.
Message Broker : A software component that enables communication between different applications or services through message passing.
MongoDB : A document-oriented NoSQL database used in BookWorm for storing chat messages and conversations.
N
.NET Aspire : Microsoft's cloud-native development framework that provides tools and libraries for building distributed applications.
Nomic Embed Text : An AI service used in BookWorm for generating text embeddings to enable semantic search capabilities.
O
OAuth 2.0 : An authorization framework that enables applications to obtain limited access to user accounts on behalf of the user.
OpenAPI : A specification for describing REST APIs, providing a standard way to document API endpoints, parameters, and responses.
OpenID Connect (OIDC) : An identity layer built on top of OAuth 2.0 that provides authentication services.
Ordering Service : A microservice responsible for managing the complete order lifecycle, from creation to fulfillment, in the BookWorm platform.
Outbox Pattern : A messaging pattern that ensures reliable event publishing by storing events in the same database transaction as business data changes.
P
PostgreSQL : An open-source relational database management system used as the primary database for most BookWorm services.
Q
Quality Attribute : A measurable characteristic of a system that indicates how well it satisfies stakeholder needs, such as performance, security, or maintainability.
Quality Scenario : A structured description of a quality requirement that includes stimulus, environment, artifact, response, and response measure.
R
Rating Service : A microservice that handles book reviews, ratings, and recommendation algorithms in the BookWorm platform.
Redis : An in-memory data structure store used for caching and session management in BookWorm.
Resilience : The ability of a system to handle and recover from failures, continuing to provide service even when some components fail.
S
Saga Pattern : A design pattern for managing distributed transactions across multiple services, providing consistency without requiring distributed locks.
Scalability : The ability of a system to handle increased load by adding resources to the system, either horizontally (more instances) or vertically (more powerful instances).
SendGrid : A cloud-based email delivery service used by BookWorm for sending notifications and communications.
Service Discovery : A mechanism that enables services in a distributed system to find and communicate with each other without hardcoded addresses.
SignalR : A library for adding real-time web functionality to applications, enabling server-side code to push content to clients instantly.
T
Telemetry : The automatic collection and transmission of data from remote sources for monitoring and analysis purposes.
Technical Debt : The cost of additional rework caused by choosing easy solutions now instead of better approaches that would take longer.
U
Ubiquitous Language : A common language shared by domain experts and developers within a specific bounded context in Domain-Driven Design.
Unit Test : Testing individual components or modules in isolation to verify they work correctly according to their specifications.
V
Vertical Slice Architecture : An architectural approach that organizes code by feature rather than by technical layer, grouping all code for a feature together.
VuePress : A static site generator optimized for creating documentation websites, used for generating BookWorm's architecture documentation.
W
WebSocket : A communication protocol that provides full-duplex communication channels over a single TCP connection, used for real-time features.
Y
YARP (Yet Another Reverse Proxy) : A Microsoft library for creating reverse proxy and API gateway solutions in .NET applications.
This glossary provides definitions for terms used throughout the BookWorm architecture documentation. It serves as a reference for developers, stakeholders, and anyone working with or studying the system.