A .NET library for distributed transactions and event bus integration in microservices using the Outbox pattern.
CAP is a .NET library that provides a solution for distributed transactions and event bus integration in microservices. It ensures data consistency across services using the Outbox Pattern, guaranteeing that event messages are never lost even during system failures. It also functions as a high-performance, lightweight event bus for decoupled communication.
Developers and architects building .NET-based microservices or SOA systems who need reliable event-driven communication and distributed transaction handling.
Developers choose CAP for its simplicity, reliability, and extensibility—it offers a unified solution for distributed transactions and event bus needs with support for multiple message queues and databases, a real-time dashboard, and built-in OpenTelemetry support.
Distributed transaction solution in micro-service base on eventually consistency, also an eventbus with Outbox pattern
Supports a wide range of message queues like RabbitMQ, Kafka, and databases such as SQL Server and PostgreSQL, allowing flexible integration into diverse tech stacks as shown in the installation and configuration sections.
Includes a built-in web dashboard for viewing message status and manually retrying failed messages, providing immediate visibility without third-party tools, as highlighted in the Key Features.
Implements the Outbox Pattern using a local message table to ensure messages are never lost, with automatic retries for failed deliveries, addressing reliability in distributed systems.
Offers built-in support for publishing messages with delays without relying on message queue features, demonstrated in the Publish with Delay example using PublishDelayAsync.
The README admits CAP cannot handle Azure Service Bus Emulator's separate ports simultaneously, requiring manual entity creation when AutoProvision is false, adding complexity for local development.
The Outbox Pattern necessitates storing messages in a database table, which introduces additional writes and potential latency, impacting performance in high-throughput scenarios.
Requires installing and configuring multiple separate packages for transport and storage, which can be cumbersome and error-prone for simple or rapid prototyping needs.
Open-source web application framework for ASP.NET Core! Offers an opinionated architecture to build enterprise software solutions with best practices on top of the .NET. Provides the fundamental infrastructure, cross-cutting-concern implementations, startup templates, application modules, UI themes, tooling and documentation.
ASP.NET Boilerplate - Web Application Framework
Cloud Native application framework for .NET
An easy way to perform background job processing in .NET and .NET Core applications. No Windows Service or separate process required
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.