Adapter System
Amber 2.0 introduces a pluggable adapter system for session storage and pub/sub messaging. This replaces the hard Redis dependency from v1.x with a flexible architecture that works out-of-the-box and can be extended with custom backends.
Why Adapters?
In Amber 1.x, Redis was required for sessions and WebSocket messaging. This created issues:
- Required Redis installation for development
- External dependency even for simple apps
- No flexibility for other backends
Amber 2.0 solves this with:
- Memory-based adapters work immediately
- No external dependencies required
- Implement custom adapters for any backend
- Easy testing without external services
Built-in Adapters
Memory Adapters (Default)
# config/environments/development.yml
session:
key: "amber.session"
store: "signed_cookie"
adapter: "memory"
expires: 3600
pubsub:
adapter: "memory"
Memory adapters are perfect for:
- Development environments
- Testing
- Single-server deployments
- Simple applications
Cookie Sessions
For stateless session storage:
session:
key: "amber.session"
store: "signed_cookie"
expires: 3600
Configuration
Session Configuration
# config/environments/production.yml
session:
key: "myapp.session"
adapter: "database" # Your custom adapter
expires: 86400 # 24 hours
PubSub Configuration
pubsub:
adapter: "memory" # Or custom adapter name
Custom Adapters
Implement custom adapters for your specific needs:
- Database sessions (PostgreSQL, MySQL)
- Redis (via community shard)
- Cloud storage (AWS DynamoDB)
- Message queues (RabbitMQ, Kafka)
See Session Adapters and PubSub Adapters for implementation guides.
Migration from Redis
If you used Redis in Amber 1.x, see the Migration Guide for step-by-step migration instructions.