Skip to content
CAI
Software that uses CAICheck a score

devmentors/Inflow

42.4

Weak · 21 September 2026

10.5k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a .NET 6-based application composed of multiple modules including customer, payment, saga, user, and wallet functionality. The codebase has been modernized to leverage C\# 10+ features and updated dependencies, indicating a focus on maintaining a multi-module architecture with a contemporary .NET stack.

Behavioural changes

Upgrade to .NET 6 and modernize C\# code style

The application has been upgraded from .NET 5 to .NET 6, reflected in the EF Core migration files where the \ProductVersion\ annotation is updated from 5.0.8/5.0.9 to 6.0.1. Additionally, the codebase has been refactored to use C\# 10+ features, including top-level statements, global usings, and file-scoped namespaces, as seen in the simplified \Program.cs\, \Startup.cs\, and various module controllers and handlers.

(repo-wide) · high confidence

Dependencies

Upgrade to .NET 6 and update dependencies

The application has been upgraded from .NET 5.0 to .NET 6.0 across all modules, including the bootstrapper, customer, payment, saga, user, and wallet modules. Additionally, various NuGet packages have been updated to their .NET 6-compatible versions, including Microsoft.EntityFrameworkCore.Design, Microsoft.AspNetCore.Mvc.Testing, Microsoft.NET.Test.Sdk, xunit.runner.visualstudio, coverlet.collector, NSubstitute, and several shared infrastructure libraries such as Serilog, Swashbuckle, and Humanizer.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 42 → 42 (+0.3)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 60 → 59 (-1.1)
  • Architecture 78 → 78 (+0.1)
  • Maturity 59 → 59 (+0.0)
  • Readiness 19 → 20 (+0.6)
  • Security 72 → 70 (-2.2)
  • Domain Modelling 65 (new)
  • Event-Driven 74 (new)

Resolved (26)

  • Duplicated block (11 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Postgres/Decorators/TransactionalCommandHandlerDecorator.cs)
  • Duplicated block (13 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Messaging/Outbox/OutboxCleanupProcessor.cs)
  • Duplicated block (14 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Services/AppInitializer.cs)
  • Duplicated block (16 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Messaging/Outbox/InboxCleanupProcessor.cs)
  • Duplicated block (8 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Logging/Decorators/LoggingCommandHandlerDecorator.cs)
  • High CVE: MessagePack 2.4.35
  • High CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: MessagePack 2.4.35
  • Medium CVE: System.Data.SqlClient 4.8.1
  • No exposed public API
  • Secret: generic-api-key (src/Bootstrapper/Inflow.Bootstrapper/appsettings.json)
  • …and 6 more

New (260)

  • CRAP 56: CurrencyResolver.GetForNationality (src/Modules/Payments/Inflow.Modules.Payments.Core/Deposits/Domain/Services/CurrencyResolver.cs)
  • CRAP 56: Extensions.Map (src/Modules/Wallets/Inflow.Modules.Wallets.Application/Wallets/Queries/Handlers/Extensions.cs)
  • CRAP 56: SignUpHandler.HandleAsync (src/Modules/Users/Inflow.Modules.Users.Core/Commands/Handlers/SignUpHandler.cs)
  • CRAP 70: ModuleClient.PublishAsync (src/Shared/Inflow.Shared.Infrastructure/Modules/ModuleClient.cs)
  • CRAP 72: BrowseCustomersHandler.HandleAsync (src/Modules/Customers/Inflow.Modules.Customers.Core/Queries/Handlers/BrowseCustomersHandler.cs)
  • CRAP 72: BrowseDepositsHandler.HandleAsync (src/Modules/Payments/Inflow.Modules.Payments.Core/Deposits/Queries/Handlers/BrowseDepositsHandler.cs)
  • CRAP 72: BrowseWithdrawalsHandler.HandleAsync (src/Modules/Payments/Inflow.Modules.Payments.Core/Withdrawals/Queries/Handlers/BrowseWithdrawalsHandler.cs)
  • CRAP 90: ContractRegistry.ValidateProperty (src/Shared/Inflow.Shared.Infrastructure/Contracts/ContractRegistry.cs)
  • CommentedOutCode (src/Shared/Inflow.Shared.Tests/DbHelper.cs)
  • Documentation: no installation or build instructions (README.md)
  • Duplicated block (10 lines × 2) (src/Modules/Payments/Inflow.Modules.Payments.Core/DAL/Configurations/DepositConfiguration.cs)
  • Duplicated block (10 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Logging/Decorators/LoggingCommandHandlerDecorator.cs)
  • Duplicated block (13 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Messaging/Outbox/OutboxCleanupProcessor.cs)
  • Duplicated block (14 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Postgres/Decorators/TransactionalCommandHandlerDecorator.cs)
  • Duplicated block (14 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Services/AppInitializer.cs)
  • Duplicated block (16 lines × 2) (src/Modules/Payments/Inflow.Modules.Payments.Core/Deposits/Queries/Handlers/BrowseDepositAccountsHandler.cs)
  • Duplicated block (16 lines × 2) (src/Shared/Inflow.Shared.Infrastructure/Messaging/Outbox/InboxCleanupProcessor.cs)
  • Duplicated block (29 lines × 2) (src/Modules/Payments/Inflow.Modules.Payments.Core/Deposits/Queries/Handlers/BrowseDepositsHandler.cs)
  • Duplicated block (5 lines × 2) (src/Modules/Wallets/Inflow.Modules.Wallets.Application/Wallets/Commands/Handlers/AddFundsHandler.cs)
  • Duplicated block (8 lines × 2) (src/Modules/Payments/Inflow.Modules.Payments.Core/Deposits/DTO/DepositDto.cs)
  • …and 240 more

API surface

  • Unchanged — 29 HTTP endpoints

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

devmentors/Inflow was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 39e96dab0b790241930fca2906935d237e7416d3 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.