Introduction to DIAL Technological Stack
DIAL is designed to be lightweight and efficient, requiring minimal resources to run. It primarily relies on community-driven and cost-effective solutions, helping to reduce technical complexity, avoid licensing risks, and keep the total cost of ownership (TCO) as low as possible.
Refer to the Contribution Guide to learn more.
Components Stack
The only required component is DIAL Core. Refer to Architecture to explore installation options.
- DIAL Core: Java 17, Vert.x
- DIAL Chat: Next.js, TypeScript
- Other system components such as Analytics Realtime, model adapters, interceptors, app builder and code interpreter: Python 3.11, FastAPI. Can bring additional stack. Refer to a GitHub repository of each component to learn more.
To maintain security and compliance, all technologies used in DIAL—including Java, Python, and JavaScript libraries—are continuously monitored for security vulnerabilities and licensing issues.
Storage
DIAL does not require having a centralized database. To operate, all you need is Redis and a storage for system and user files.
- DIAL is cloud-agnostic, meaning you can use a BLOB storage of your choice (e.g. AWS S3, Google Cloud Storage, Azure Blob Storage) or a file system for self-hosted deployments.
- Redis is used for in-memory caching with support for write-back (write-behind) caching.
Deployment & Observability
DIAL is designed with flexibility in mind, allowing you to deploy it on the cloud, as a self-hosted solution, or even install it on a personal laptop.
- You can quickly launch DIAL using the container technology of your choice, such as Docker, Podman, or other containerization tools. Alternatively, you can deploy it through cloud marketplaces like AWS, Google Cloud, and Microsoft Azure.
- For production deployments, you can use Kubernetes and Helm for orchestration and management.
- DIAL supports OpenTelemetry for observability, monitoring and tracing.
- To manage secrets, DIAL integrates with popular secret management tools, including Azure Key Vault, HashiCorp Vault, AWS Secrets Manager, and GCP Cloud Key Management.
Authentication
DIAL provides native support for OpenID Connect and OAuth2 and offers integration with various Identity Providers (IDP) such as Azure AD, Auth0, Okta, Microsoft Entra, Google OAuth2, and AWS Cognito where you can define user roles and attributes to support your custom permissions model. Additionally, you can leverage Keycloak to work with an even wider range of IDPs.