Deployment
Deployment
Bosca is designed to be cloud-native and deployable in various environments, from local development machines to large-scale Kubernetes clusters.
Docker Compose
For development, testing, and small deployments, we provide a docker-compose.yaml file that orchestrates all necessary dependencies.
To start the infrastructure:
docker compose up -d
This commands spins up the following services:
- Data Stores: PostgreSQL (Main & Warehouse)
- Search: Meilisearch
- Cache / PubSub / Job Queue: Redis or NATS
- Storage: S3Proxy (simulating AWS S3)
- Utilities: Text Extractor, Jaeger, etc.
Once the infrastructure is up, you can run the Bosca application services (Server, Analytics, etc.) as standalone processes or containerized services.
Production Guidelines
For production environments, we recommend a container-orchestrated setup (like Kubernetes).
Scalability
- Stateless Services: Bosca Server and Analytics Collector are stateless. They can be scaled horizontally behind a load balancer.
- Stateful Infrastructure: Databases, Search Engines, and Message Queues should be managed as stateful sets or improved using managed cloud services (e.g., AWS RDS, Amazon SQS/SNS, ElasticSearch).
Configuration
Services are configured primarily via Environment Variables, making them 12-factor app compliant.
Key configurations include:
POSTGRES_USER/POSTGRES_PASSWORD: Database credentials.MEILI_MASTER_KEY: Search engine security key.S3PROXY_IDENTITY: Object storage access key.
Backend Services
The backend logic is distributed across several key services, each responsible for a specific domain of the Bosca Framework.
Framework Modules
The Bosca Framework is composed of a rich set of modules, primarily split between the backend and general framework libraries. Each domain follows a pattern of a core-* module (interfaces and models) paired with an implementation module.