Documentation Index
Fetch the complete documentation index at: https://platform.docs.zenoo.com/llms.txt
Use this file to discover all available pages before exploring further.
Cloud Provider Support
The Zenoo Hub features a multi-cloud architecture that allows you to deploy on different cloud platforms without changing your business logic. Through a pluggable cloud provider abstraction layer, the Hub decouples storage, configuration, and secrets management from the core workflow engine.Overview
The cloud provider abstraction enables:- Multi-cloud deployment - Deploy on AWS, Azure, GCP, or local infrastructure
- Provider flexibility - Switch cloud providers without code changes
- Testability - Test locally without cloud dependencies
- Future-proof architecture - Add new providers as requirements evolve
Supported Providers
Production Ready
AWS (Amazon Web Services)
The AWS provider is fully supported and production-ready, using:- DynamoDB for component and API key storage
- Secrets Manager for configuration and secrets management
- CloudWatch for metrics publishing
Local Provider
The local provider is production-ready for development and testing:- In-memory storage using thread-safe ConcurrentHashMap
- Zero external dependencies - no AWS, Docker, or cloud services
- Instant startup with no configuration overhead
- Automatic cleanup for expired sharables
GCP (Google Cloud Platform)
The GCP provider is fully supported and production-ready, using:- Cloud Firestore (Native Mode) for component and API key storage
- Secret Manager for configuration and secrets management
- Cloud Monitoring for metrics publishing
Development Tools
LocalStack
For local testing with AWS service emulation:- DynamoDB, Secrets Manager, and other AWS services
- Useful for testing AWS-specific behavior locally
Future Support
The architecture is designed to support additional providers:- Azure - Cosmos DB, Key Vault, Application Insights
- Custom - Implement your own provider for specialized infrastructure
How It Works
The Hub uses a clean abstraction layer that separates business logic from infrastructure:Choosing a Provider
Select your cloud provider inapplication.yml:
aws- Production deployments on AWS (default for backward compatibility)gcp- Production deployments on Google Cloud Platformlocal- Local development and testing (zero dependencies)
Key Features
Component Storage
All cloud providers implement theComponentStore interface for:
- Storing and retrieving Hub components with versioning
- Managing component revisions
- Supporting optimistic locking for concurrent updates
Configuration Management
Providers implementComponentConfigStorage for:
- Storing component configuration securely
- Version management
- Encrypted storage where supported
Secrets Management
Providers implementApiKeySecretStorage for:
- Managing API key secrets
- Permission management
- Secure storage with encryption
Sharable Token Storage
Providers implementSharableStore for:
- Temporary token storage with TTL
- Automatic expiration
- High-performance retrieval
Configuration Overview
Each provider has specific configuration properties. Here’s a comparison:| Feature | AWS | GCP | Local | Azure (Future) |
|---|---|---|---|---|
| Component Storage | DynamoDB | Firestore (Native Mode) | In-Memory (ConcurrentHashMap) | Cosmos DB |
| Secrets Management | Secrets Manager | Secret Manager | In-Memory | Key Vault |
| Metrics | CloudWatch | Cloud Monitoring | Console Logging | App Insights |
| Persistence | Full | Full | None (volatile) | Full |
| Multi-region | Yes | Yes | - | Yes |
| Multi-instance | Yes | Yes | - | Yes |
| TTL Support | Yes (DynamoDB) | Yes (Firestore TTL) | Yes (in-memory) | Yes |
| Authentication | IAM Roles | IAM / Workload Identity | None | Managed Identity |
| Setup Required | AWS account + IAM | GCP project + IAM | None | Azure account |
| External Dependencies | DynamoDB, Secrets Manager | Firestore, Secret Manager | None | Cosmos DB, Key Vault |
| Startup Time | Fast (~2s) | Fast (~2s) | Instant (<100ms) | Fast (~2s) |
| Cost | Pay per use | Pay per use | Free | Pay per use |
| Best For | Production on AWS | Production on GCP | Development, Testing | Production on Azure |
Getting Started
Using AWS Provider (Default)
- Configure AWS credentials:
- Ensure IAM permissions for DynamoDB and Secrets Manager
- Deploy - Tables and secrets are created automatically
Using Local Provider
- Add dependency to
build.gradle:
- Configure local provider in
application.yml:
- Run Hub - that’s it! No external services needed.
- Instant startup (
<100ms) - No AWS credentials
- No Docker/LocalStack
- Perfect for testing and CI/CD
Using GCP Provider
- Add dependency to
build.gradle:
- Enable GCP APIs:
- Configure GCP provider in
application.yml:
- Deploy - Firestore collections and secrets are created automatically
- Application Default Credentials (ADC) support
- Firestore Native Mode for storage
- Secret Manager for configuration
- Cloud Monitoring for metrics
- Workload Identity on GKE
Using LocalStack (AWS Emulation)
For testing AWS-specific behavior locally:- Start LocalStack:
- Configure Hub for LocalStack:
Architecture Deep Dive
For a detailed explanation of the cloud provider architecture, including:- Module structure
- Interface design
- Adapter pattern
- Exception handling
- Testing strategies
Migration Guide
If you’re upgrading from an older version of the Hub:- Your existing
hub.aws.*configuration continues to work - No code changes required
- Migration is optional but recommended