Adapters
Platform adapters implement the ports defined by the Cascade kernel, following the Hexagonal Architecture pattern.
UI Rendering Adapters
Appsmith Renderer
Low-code UI builder integration for rapid application development.
- Schema-driven UI generation
- Drag-and-drop interface building
- Real-time data binding
React JSON Schema Form (RJSF)
Dynamic form generation from JSON Schema definitions.
- Automatic form validation
- Custom widget support
- Theme customization
ECharts
Advanced data visualization and charting library integration.
- Interactive charts and graphs
- Real-time data updates
- Extensive chart types
Orchestration Adapters
Temporal
Durable workflow execution engine with state persistence and fault tolerance.
- Workflow versioning
- Activity retries
- Event-driven execution
- State snapshots
Storage Adapters
PostgreSQL
Relational database adapter for persistent storage with full ACID compliance.
- Transaction support
- Query optimization
- Connection pooling
Redis
In-memory cache and pub/sub adapter for high-performance data access.
- Key-value storage
- Pub/Sub messaging
- Session management
Policy Adapters
OPA (Open Policy Agent)
Rego-based policy evaluation engine for flexible business rules.
- Declarative policy language
- Policy testing framework
- Integration with external data
Camunda DMN
Decision Model and Notation engine for complex decision logic.
- Visual decision modeling
- Decision tables
- Expression language (FEEL)
Implementation Guide
Each adapter is a pluggable implementation of one or more port interfaces. This design ensures:
- Swappability - Change implementations without code changes
- Testability - Mock adapters for unit testing
- Extensibility - Add new adapters easily
- Isolation - Adapters don’t depend on each other
Architecture Pattern
┌─────────────────┐
│ Application │ (Your CDL)
└────────┬────────┘
│
┌────────▼────────┐
│ Kernel/Core │ (Business Logic)
└────────┬────────┘
│
┌────────▼────────┐
│ Ports │ (Interfaces)
└────────┬────────┘
│
┌────────▼────────┐
│ Adapters │ (Implementations)
└─────────────────┘Adding Custom Adapters
To create a custom adapter:
- Implement the Port Interface - Follow the port specification
- Register the Adapter - Add to the adapter registry
- Configure - Add configuration to your application
- Test - Unit test with mocks, integration test with real adapter
See the Ports documentation for detailed interface definitions.