backend/domain-model.md

Domain Model

Objetos dominio:

  • LicenseValidator
  • EntitlementMatcher
  • QuotaService
  • OtpOperationService
  • OtpChallengeService
  • OtpVerifier
  • ProviderRouter
  • FallbackEvaluator
  • UsageRecorder
  • AuditRecorder
  • WebhookDispatcher

Regla de oro: UsageRecorder.recordBillableSend() debe ser idempotente por challengeId + channel + providerMessageId.