# Integrations

`app/system/internal/integration` contains adapters that talk to systems outside the
application process. They may open sockets, create SDK clients, keep reloadable
state, or translate provider-specific protocols into `biz` interfaces.

## Packages

- `cache`: Redis-backed cache with an in-memory fallback.
- `email`: SMTP email repository.
- `payment`: payment-channel SDKs and callback/signature handling.
- `storage`: local and object-storage implementations of `biz.FileStorage`.

These packages are not `utils`: they perform I/O and own external dependency
lifecycles. Their constructors are exposed through `ProviderSet`; `cmd` binds
the `cache.RedisProvider` implementation to the shared `data.Data` container.

Stateless protocol helpers that do not own clients live in
`pkg/paymentkit`. They are intentionally small and dependency
light, while provider adapters remain here.
