Releases: alysonsz/Finance-API
🚀 Release v2.0.0 - Architectural Evolution: CQRS & Outbox Pattern
This release represents a major architectural evolution of the platform, transitioning from a monolithic data structure to a high-performance and scalable CQRS (Command Query Responsibility Segregation) architecture.
The system now uses specialized database engines optimized for different workloads while maintaining data integrity and reliability through the Outbox Pattern. In addition, the infrastructure was modernized to improve observability, performance, and deployment consistency.
Architecture Highlights
Database Segregation (CQRS)
The data layer is now divided into two independent contexts designed for specific responsibilities.
Write Stack (Command) — SQL Server
Responsible for all state-changing operations with strong relational guarantees.
- Create, Update, and Delete workflows
- Transactional consistency
- Domain validation and business rules
Read Stack (Query) — PostgreSQL
Optimized for high-performance querying and scalable read operations.
- Fast data retrieval
- Complex query scenarios
- Read-heavy workloads
Reliable Synchronization — Outbox Pattern
To ensure eventual consistency between the Write and Read databases without distributed transactions, the Outbox Pattern was introduced.
Key characteristics:
-
Atomic Persistence
Business data and synchronization events are stored within the same transaction. -
Background Processing
A resilient OutboxProcessorHostedService continuously polls and dispatches pending messages. -
Idempotent Handlers
The MainSyncHandler guarantees safe and deduplicated replication to PostgreSQL.
Infrastructure Modernization
The platform infrastructure was redesigned to support scalability, resilience, and observability.
Containerization
- Full orchestration via Docker Compose
- SQL Server
- PostgreSQL
- Redis
- Seq
Observability
- Structured logging with Serilog
- Centralized log monitoring using Seq
- Improved visibility of background processes
Distributed Caching
- Redis integration for faster read operations
- Session and performance optimization
Quality and Testing
Testcontainers Integration
- Integration tests now run against real SQL Server and Redis instances
- Improved environment parity between development and CI
SonarQube Optimization
- Auto-generated Entity Framework migrations excluded from duplication analysis
- Cleaner and more accurate quality reports
v1.1.0 – Architecture Refinement and Test Infrastructure Improvements
This release establishes a stronger foundation for upcoming improvements such as read/write
database separation, Dapper integration, and message-based processing.
Introduces a substantial internal refactor focused on code organization,
maintainability, and test reliability, while keeping the public API fully backward compatible.
No build or local setup required. Pull the production image directly:
docker pull alysonsz/finance-api:v1.10
Architecture Improvements
- Refactored application handlers into feature-based units (Create, Update, Delete, Get).
- Removed monolithic handler structures in favor of clearer, single-responsibility components.
- Introduced a service layer (CategoryService, TransactionService, UserService) acting as orchestrators over MediatR handlers.
- Controllers are now thin and focused only on HTTP responsibilities.
Authentication Adjustments
- Registration flow no longer generates access tokens.
- Token generation is now exclusive to the login flow.
- Authentication logic is clearer and better aligned with real-world security practices.
Testing and CI Stability
- Updated unit tests to reflect the new handler and service structure.
- Refactored API controller tests to match real response shapes and authorization behavior.
- Added and stabilized Docker-based integration tests using Testcontainers.
- Improved test reliability in CI/CD pipelines.
Infrastructure and Maintenance
- Updated Docker image tagging to align with the new release version.
- Removed deprecated Testcontainers APIs.
- Fixed multiple bugs identified during test stabilization and refactoring.
Versioning
- Version: v1.1.0
- Breaking changes: None
- API compatibility: Fully backward compatible
v1.0.0 - Enterprise Performance & Observability
🚀 v1.0.0 — Performance & Production Ready
This first major release marks the Finance API as a production-ready, enterprise-grade financial system, focused on performance, security and operational simplicity.
🐳 Docker Image (Ready to Run)
No build or local setup required. Pull the production image directly:
docker pull alysonsz/finance-api:v1.0.0
🌟 Key Features
- Distributed Caching: Redis implementation using the Cache-Aside pattern for sub-millisecond reads on Transactions and Categories, with surgical cache invalidation.
- Performance-Oriented Design: Read-heavy endpoints optimized while keeping paginated listings direct-to-database for consistency.
- Observability: Centralized structured logging with Serilog and Seq for real-time diagnostics.
- Security: JWT-based authentication with secure key persistence using ASP.NET Data Protection.
- Clean Architecture: Strict separation of Domain, Application, Contracts, Infrastructure and API layers.
- Containerization: Fully containerized environment via Docker Compose.
🛠️ Infrastructure
- Docker Compose orchestration for API, SQL Server 2022, Redis and Seq.
- Resilient startup with database health checks and controlled initialization.
🧪 Quality
- Unit and integration tests covering core business rules and application handlers.
- API-first design with auto-generated Swagger/OpenAPI documentation.