Skip to content

Currency Integrations (Adapters)

Purpose

Currency integrates with other systems through adapter-style compositions.

These integrations live in the RevFramework Integrations folder because they depend on optional systems (e.g. Inventory) and are not part of the core Currency runtime.


Usage Guidance

Integrations are intended to:

  • Adapt external systems into Currency contracts
  • Remain optional and assembly-isolated
  • Avoid introducing dependencies into the core Currency runtime

What Lives Here

Concrete integrations can be found under:

  • Integrations/Currency/InventoryIntegration
  • Integrations/Currency/... (other optional systems)

These are included only when the corresponding system is present.


Important Notes

  • Currency remains system-agnostic at its core
  • Integrations compose around supported Currency seams
  • Availability depends on installed modules and defines

Supported seams include:

  • ICurrencyService
  • ICurrencyAuthority
  • ICurrencyBatchEvents
  • ICurrencyAuditReader
  • ICurrencyAuditEvents
  • ICurrencyEscrow
  • ICurrencyEscrowReadOnly
  • ICurrencyExchange
  • IAuditAwareCurrencyService

Usage Guidance

Providing your own integration

Projects can integrate custom systems (inventory, persistence, authority, etc.) by:

  • Implementing ICurrencyService, or
  • Composing behaviour around an existing service (decorator pattern)

Currency does not require any specific external system.


Internal Use Only

This folder documents integration patterns.

Do not:

  • Add core runtime dependencies here
  • Assume integrations are always present
  • Depend on specific adapter implementations

Safe to Remove

This folder may be removed if no integrations are used.

Removing it does not affect the core Currency system.


  • Abstractions / Services — integration contracts
  • PublicAPI — helper workflows for integrations
  • Integrations (root) — other system adapters