Adapter Tutorials¶
ArchiPy provides a variety of adapters to help interface with external systems, maintaining a clean separation between your business logic and external dependencies.
Available Adapters¶
| Adapter | Purpose | Example | API Reference |
|---|---|---|---|
| Email sending interface | Connect to SMTP servers for sending emails | API | |
| Keycloak | Authentication & authorization | User management and access control with Keycloak | API |
| Kafka | Message streaming | Event-driven architectures with Apache Kafka | API |
| MinIO | Object storage | S3-compatible object storage for files and documents | API |
| Payment Gateways | Payment gateway | Process online payments with Parsian Shaparak | API |
| PostgreSQL | Database access | SQLAlchemy integration for PostgreSQL | API |
| SQLite | Database access | SQLAlchemy integration for SQLite | API |
| StarRocks | Database access | SQLAlchemy integration for StarRocks | API |
| ScyllaDB | NoSQL database | Wide-column store for ScyllaDB and Cassandra | API |
| Elasticsearch | Search & analytics | Full-text search, document indexing, aggregations | API |
| Redis | Key-value store | Caching, pub/sub, and data storage with Redis | API |
| Temporal | Workflow orchestration | Durable workflow execution and activity coordination | API |
Adapter Architecture¶
ArchiPy follows the ports and adapters pattern (hexagonal architecture):
┌────────────────────────────────────────┐
│ Domain Logic │
└───────────────────┬────────────────────┘
│ uses
┌───────────────────▼────────────────────┐
│ Ports │
│ (Abstract Interfaces) │
└───────────────────┬────────────────────┘
│ implemented by
┌───────────────────▼────────────────────┐
│ Adapters │
│ (Concrete Implementations) │
└───────────────────┬────────────────────┘
│ connects to
┌───────────────────▼────────────────────┐
│ External Systems │
│ (Databases, APIs, Message Queues) │
└────────────────────────────────────────┘
Creating Custom Adapters¶
Creating custom adapters is straightforward:
- Define a port (abstract interface)
- Implement the adapter class
- Optionally create a mock implementation
See the Concepts guide for more details on creating custom adapters.
See Also¶
- API Reference - Adapters - Full adapters API documentation
- Tutorials Overview - Overview of all tutorials