💰 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/InventoryIntegrations/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:
ICurrencyServiceICurrencyAuthorityICurrencyBatchEventsICurrencyAuditReaderICurrencyAuditEventsICurrencyEscrowICurrencyEscrowReadOnlyICurrencyExchangeIAuditAwareCurrencyService
🧠 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.
🔗 Related Documentation¶
- Abstractions / Services — integration contracts
- PublicAPI — helper workflows for integrations
- Integrations (root) — other system adapters