- .NET na versão X: Escolhido pela robustez e suporte extensivo para aplicações empresariais.
- SQL Server: Utilizado como banco de dados principal devido à sua confiabilidade e integração eficiente com o .NET.
- RabbitMQ: Adotado para gerenciamento de filas de processamento de relatórios, garantindo a entrega confiável de mensagens e suporte a picos de tráfego.
A aplicação CashFlowTracker é estruturada seguindo a Clean Architecture, facilitando a manutenção e a testabilidade. Implementamos o padrão CQRS (Command Query Responsibility Segregation) utilizando MediatR para separar as operações de leitura e escrita, garantindo maior clareza e eficiência.
Para executar o projeto, use o seguinte comando:
docker-compose up --build
Isto irá iniciar todos os serviços necessários, incluindo a API, workers e bancos de dados.
- Escalabilidade: A arquitetura foi projetada para escalar horizontalmente, permitindo lidar com aumentos de carga.
- Manutenção: O uso de Clean Architecture e princípios SOLID facilita a manutenção e futuras expansões do sistema.
- Controle de Lançamentos: O sistema processa transações financeiras de forma assíncrona, garantindo alta disponibilidade.
- Serviço de Consolidado Diário: Implementado para gerar relatórios diários, mesmo sob alta carga.
- Arquitetura Limpa e Ports and Adapters: Facilita testes e manutenção, promove desacoplamento e flexibilidade.
- FluentValidation: Para validação de dados.
- xUnit: Utilizado para testes unitários.
- Docker Compose: Simplifica a execução e garante consistência entre ambientes.
- Postman Collection: Disponível para testar a API.
- Transações Financeiras: Registros e relatórios diários.
- Resiliência: O sistema continua operacional mesmo com falhas parciais.
- Segurança: Importante verificar autorizações e autenticações em fases futuras.
- Arquiteturas Alternativas: Microserviços poderiam ser explorados para casos de uso específicos.