Deployment Models
Choose where deployments run, configure their resources, and create them through the Console or API
Choose Managed, Bring Your Own Cloud (BYOC), or On-Premise according to where the infrastructure must run and who owns it. Each uses Warden, the software that manages a node, plus the same Console and APIs. For your first Free deployment, follow the Quick Start.
How It Works
Each node runs an Iggy server and Warden, the agent that manages it. Warden retrieves tasks and configuration from the LaserData control plane, the services that manage deployments.
Warden starts management connections outbound over HTTPS. Management does not require inbound connections, SSH, or cloud-specific agents. Application clients connect to the deployment endpoints.
Managed
LaserData creates and operates the infrastructure in its AWS or GCP accounts. Use this model when you want managed infrastructure without configuring a cloud account. You can create a deployment in the Console and connect within minutes.
Managed deployments include these services:
- Infrastructure, networking, TLS certificates, upgrades, and monitoring.
- A custom subdomain such as
your-cluster.laserdata.cloud, with automatic TLS, for public deployments. - VPC Peering for private access from your AWS or GCP VPC, a private cloud network.
- PrivateLink to expose an AWS deployment as a VPC endpoint service.
- Private Service Connect to expose a GCP deployment through a service attachment.
- Load-balanced endpoints for public or private access, with encryption from end to end.
BYOC (Bring Your Own Cloud)
With BYOC, LaserData manages the deployment in your AWS or GCP account. Nodes, storage, networking, and application data remain in your account. You pay the cloud provider for those resources.
The Console, monitoring, upgrades, and tasks work as they do for Managed deployments. LaserData uses a scoped AWS IAM role or impersonates a GCP service account to provision infrastructure. Deployments run on compute instances and do not require Kubernetes.
Provisioning permissions cover compute, networking, and storage. They do not grant access to object storage, secret managers, or application data. Follow the BYOC Setup Guide to configure access.
On-Premise
On-Premise runs Iggy on physical servers, private cloud infrastructure, or virtual machines that you control. LaserData manages tasks through Warden's outbound connection. Management requires outbound HTTPS on port 443.
Iggy continues to run when the control plane is unavailable. Pending tasks run after the connection returns. The LaserData team provisions On-Premise deployments and supplies the installation details. Contact us to start, or read the On-Premise Setup Guide.
Comparison
| Managed | BYOC | On-Premise | |
|---|---|---|---|
| Infrastructure owner | LaserData | You (AWS/GCP) | You (any) |
| Data location | LaserData AWS/GCP | Your cloud account | Your infrastructure |
| Cloud bill | Included in the monthly configuration price and measured transfer | Your cloud account | Your infrastructure |
| Provisioning | Automatic | Automatic (IAM role on AWS, service account on GCP) | LaserData team (contact us) |
| Networking | VPC Peering, PrivateLink (AWS), PSC (GCP) | Direct VPC access | Your network |
| Upgrades | Automatic | Automatic | Pull-based via Warden |
| Console & APIs | Full access | Full access | Full access |
| Kubernetes required | No | No | No |
What You Get with Every Deployment
The following services apply across the deployment models. Some network features depend on whether the deployment has a public IP.
Custom Subdomain
Public deployments receive a subdomain such as your-cluster.laserdata.cloud for connection strings. The platform manages it and its TLS certificates automatically. Private deployments do not receive a subdomain. Client connections use TLS.
Built-in Stream UI
The Console includes Stream UI for streams, topics, partitions, messages, and consumer groups. Its Managed data area provides projections, queries, key-value storage, and forks when the managed data plane is enabled.
Stream UI runs in the browser and connects directly to Warden's HTTP proxy on the node. It uses a short-lived signed session token. Messages travel between the browser and node, without passing through the LaserData backend. The browser IP needs an access rule with iggy_http: true.
Data Isolation
The control plane manages tasks, configuration, and certificates. Application data and messages stay on deployment nodes and travel directly to application clients. This separation applies to all three models.
Encryption
Connections use TLS to encrypt data in transit. Cloud providers encrypt NVMe SSDs at the hardware level, and network disks such as EBS and Persistent Disk always use encryption.
You can also enable custom key encryption when you create a deployment. Iggy then encrypts message data with a per-deployment key before writing it to disk. This adds encryption above the cloud provider's disk encryption.
Monitoring & Telemetry
Warden collects metrics, heartbeats, and logs on each node and sends them to the control plane. Standard retains telemetry for 14 days, Performance for 30 days, and Enterprise for 90 days. You can send logs to your own OpenTelemetry-compatible endpoint. See Monitoring for configuration.
Creating a Deployment
Free provisioning and first-message instructions are in the Quick Start. It also explains disabled Stream UI controls, initial system traffic, and deletion after testing.
Select Standard, Performance, or Enterprise, then choose a cloud, region, and compute size. Set storage, estimated throughput, availability, and network scope. Enterprise requires account approval. Its public pricing estimate leads to direct contact.
Use the deployment preview to see the monthly configuration price and estimated total before you provision resources. Tiers & Storage explains the available configurations.
From the Console
- Open the Environment in the Console.
- Click Create Deployment.
- Select Managed or BYOC. For On-Premise, contact the LaserData team.
- Enter the deployment configuration shown below.
| Setting | Description |
|---|---|
| Name | Human-readable name for the deployment |
| Cloud | aws or gcp |
| Region | Cloud region, for example us-west-1 or europe-west1 |
| Tier | Standard, Performance, or Enterprise. Sets starting monthly pricing, the included features, and the telemetry retention |
| Compute | Per-node size, such as Small or Large. Each tier has a default size and supports larger sizes |
| Storage | Network Drive with an adjustable size, or Local NVMe with a fixed size per Compute size. Local NVMe starts at Performance |
| Throughput | Estimated symmetric traffic. Selects suitable compute and estimates data transfer, which is billed for actual usage |
| Network scope | Same region, cross region, or cross cloud. Sets the rates for measured transfer |
| Availability | Single AZ or Multi AZ. Multi AZ spreads the three nodes across zones and requires Enterprise |
| Encryption | Custom key encryption of message data on top of the always-on disk encryption |
| Protected | Resource protection. Deleting a protected deployment requires a one-time code sent to the organization email |
| Public IP | Public with a static IP and a custom subdomain, or private with access only through private networking |
| Retention | Telemetry retention for metrics, heartbeats, and logs, up to the tier's entitlement |
| Spend limit | Optional monthly spend monitoring threshold in USD |
- Click Deploy.
Provisioning usually takes a few minutes. The status moves through creating, deploying_nodes, and waiting_for_nodes to initialized.
Free
Free deployments use one node on shared infrastructure for development and testing. They cost nothing. The first eligible organization can create one. Creating another organization does not grant another Free deployment.
Free deployments have these limits and defaults:
- Throughput is limited to 100 KB/s.
- The initial access rule permits all sources,
0.0.0.0/0. You can restrict or replace it. - The public IP can change after a restart. Paid deployments use a static IP.
- A custom subdomain provides the connection address.
- Only Single AZ is available. Private connectivity and Local NVMe are unavailable.
The platform marks a Free deployment inactive after 14 days without traffic and deletes it to release its slot. It sends warning emails on days 10 and 12. Send traffic to keep the deployment active.
Use the starter endpoint below or laser deployment create-starter to create one.
Public IP
| Mode | Behavior |
|---|---|
| Public | Static IP that persists across restarts, plus a custom subdomain with automated TLS |
| Private | No public IP. Access only through VPC Peering, PrivateLink, or Private Service Connect |
A subdomain requires a public IP. Private deployments have no subdomain and accept connections only through private networking. VPC peering starts at Performance. PrivateLink and Private Service Connect require Enterprise.
Regions
Regions belong to US, EU, or AP geographic areas. Each cloud provider has a Supervisor API for each area. That API operates the deployments in those regions.
US
| Cloud | Region | Location |
|---|---|---|
| AWS | us-east-1 | N. Virginia |
| AWS | us-east-2 | Ohio |
| AWS | us-west-1 | N. California |
| AWS | us-west-2 | Oregon |
| GCP | us-central1 | Iowa |
| GCP | us-east1 | South Carolina |
| GCP | us-east4 | N. Virginia |
| GCP | us-west1 | Oregon |
EU
| Cloud | Region | Location |
|---|---|---|
| AWS | eu-central-1 | Frankfurt |
| AWS | eu-west-1 | Ireland |
| AWS | eu-west-2 | London |
| GCP | europe-west1 | Belgium |
| GCP | europe-west2 | London |
| GCP | europe-west3 | Frankfurt |
AP
| Cloud | Region | Location |
|---|---|---|
| AWS | ap-south-1 | Mumbai |
| AWS | ap-southeast-1 | Singapore |
| AWS | ap-southeast-2 | Sydney |
| AWS | ap-northeast-1 | Tokyo |
| GCP | asia-south1 | Mumbai |
| GCP | asia-southeast1 | Singapore |
| GCP | asia-northeast1 | Tokyo |
Use List Available Clouds and List Regions to retrieve the current choices for your tenant.
Upgrading a Deployment
You can increase Compute, grow a Network Drive, or move to a higher tier after creation. A tier-only upgrade changes commercial terms and telemetry retention without changing hardware. Storage cannot shrink.
Local NVMe deployments cannot change Compute or Storage through self-service upgrades. The can_upgrade field reports whether the upgrade cooldown permits a change. See Tiers & Storage.
Coming Soon
These features are planned and are not available:
- Serverless will provide dynamic streams and automatic scaling without a reserved dedicated cluster, through a lower-cost model shared by tenants.
- Tiered storage will move sealed segments to object storage such as S3 to retain data beyond local disk capacity.
- A Kafka gateway will let applications connect with their existing Kafka SDK or client.
Plan Limits
The tenant plan limits deployment counts by Compute size and the number of saved configurations. It also controls BYOC, Multi AZ, dedicated infrastructure, and private networking.
The tenant response reports feature access in features. Its deployment_tiers array lists permitted Compute sizes and their maximum deployment counts. New organizations start on Pro. Contact the LaserData team to arrange Enterprise or Custom limits.
API Reference
Use the main API, api.laserdata.cloud, for creation, upgrades, retention, and spend limits. Use the Supervisor API, {supervisor_url}, for access rules, configuration, connectors, metrics, and logs. See API Architecture.
List Available Clouds
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds \
-H "ld-api-key: YOUR_API_KEY"List Regions
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds/{cloud}/regions \
-H "ld-api-key: YOUR_API_KEY"List Available Compute Sizes
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds/{cloud}/regions/{region}/tiers \
-H "ld-api-key: YOUR_API_KEY"[
{
"key": "free",
"name": "Free",
"description": "Perfect for getting started. Great for development, testing, and learning the platform.",
"available": true,
"limit": 1,
"clusters": ["standalone"],
"storages": ["network_balanced"],
"rate_limit": "100 KB/s"
},
{
"key": "large",
"name": "Large",
"description": "Sized for ~10 MB/s workloads. Built for demanding production applications with dedicated isolated nodes.",
"available": true,
"limit": 2,
"clusters": ["cluster"],
"storages": ["local_ssd", "network_balanced"],
"rate_limit": null
}
]The response lists Compute sizes available to your account and the remaining deployment count for each. It also reports supported cluster kinds, storage types, and per-node resources.
List Available Storage Types
curl https://api.laserdata.cloud/tenants/{tenant_id}/clouds/{cloud}/regions/{region}/storages \
-H "ld-api-key: YOUR_API_KEY"These discovery endpoints return the choices available to your account and region. Use them to populate deployment forms.
Create a Managed Deployment
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments/managed \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "prod-cluster",
"cloud": "aws",
"region": "us-west-1",
"managed_tier": "standard",
"tier": "small",
"cluster": "cluster",
"storage": {
"type": "network_balanced",
"size": 250
},
"target_network_tput": 1000,
"network_scope": "same_region",
"availability_mode": "single_az",
"protected": true,
"encrypted": true,
"public_ip_enabled": true,
"subdomain_enabled": true,
"retention": {
"telemetry_days": 14
},
"spend_limit": 500.00
}'| Field | Required | Values / Description |
|---|---|---|
name | Yes | Deployment name |
cloud | Yes | aws or gcp |
region | Yes | Cloud region, for example us-west-1 or europe-west1 |
managed_tier | Paid | standard, performance, or enterprise. Required for every paid deployment and omitted for Free |
tier | Yes | Compute size: free, small, medium, large, xlarge, 2xlarge, 4xlarge, 8xlarge, or 16xlarge |
cluster | Yes | cluster for paid deployments. Free uses standalone |
storage.type | No | network_balanced for Network Drive or local_ssd for Local NVMe. Defaults to 100 GB of Network Drive per node |
storage.size | No | Network Drive size in GB per node, from 100 to 30,000. Local NVMe size follows the Compute size |
target_network_tput | No | Throughput estimate in KB/s. 1000 is 1 MB/s. Defaults to the tier's default throughput estimate |
network_scope | No | same_region (default), cross_region_same_cloud, or cross_cloud |
availability_mode | No | single_az (default) or multi_az. Multi AZ requires Enterprise |
protected | No | Enable resource protection. Default false |
encrypted | No | Enable custom key encryption of message data. Default false |
public_ip_enabled | No | Assign a static public IP. Default true |
subdomain_enabled | No | Assign a custom subdomain. Requires a public IP. Default true |
dedicated | No | Dedicated infrastructure isolation. Requires the Enterprise plan entitlement. Default false |
retention.telemetry_days | No | Telemetry retention in days. Defaults to the tier entitlement. Values above it are rejected |
spend_limit | No | Monthly spend monitoring threshold in USD |
A successful request returns 202 Accepted. The ld-environment and ld-deployment headers contain the new resource IDs. Paid deployments require valid payment information.
Create a BYOC Deployment
BYOC uses the same Compute and Storage fields, with an aws or gcp credentials object. Do not use the managed commercial fields managed_tier, network_scope, or dedicated. See the BYOC Setup Guide for the request and setup procedure.
Create a Starter Deployment
Create a Free deployment for testing:
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/deployments/starter \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"cloud": "aws",
"region": "us-west-1"
}'| Field | Required | Description |
|---|---|---|
cloud | Yes | aws or gcp |
region | Yes | Cloud region |
environment_id | No | Existing environment to deploy into |
environment_name | No | Name for a new environment. Defaults to sandbox when neither an ID nor a name is given |
deployment_name | No | Deployment name. Generated when omitted |
A successful request returns 202 Accepted with ld-environment and ld-deployment headers.
List Deployments
curl https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id}/deployments \
-H "ld-api-key: YOUR_API_KEY"