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/Inventory
  • 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