StarRocks vs Apache Doris

StarRocks and Apache Doris are both MySQL-compatible MPP databases with FE and BE roles. This page shows which one fits customer-facing analytics, which fits a lakehouse query layer, and what decides the choice in your environment.

On this page

StarRocks vs Apache Doris: when to choose each

If your team is shortlisting two MPP databases for customer-facing analytics or a lakehouse query layer, StarRocks fits best when object storage is the center of the design and you want Linux Foundation governance, while Apache Doris fits best when you want a choice between integrated and decoupled modes under Apache Software Foundation governance with hybrid search built in. Both are Apache-2.0 licensed, both use a frontend (FE) and backend (BE) architecture, and both speak the MySQL protocol, so the difference lies in deployment shape and project governance rather than in basic SQL access. StarRocks suits teams that want shared-data operation. In that mode, stateless compute nodes (CNs) run queries and cache data while the data itself sits in object storage such as S3, GCS, Azure Blob Storage, MinIO or HDFS, with a tiered cache across memory, local disk and remote storage. The condition that matters is whether you can accept cache warm-up on cold data in exchange for elastic compute. StarRocks describes itself as a Linux Foundation project, and it maintains an Apache-2.0 Kubernetes operator, which matters if your platform team already runs stateful workloads that way. Confirm the operator's support matrix against your Kubernetes version before committing. Apache Doris suits teams that want a choice of storage model. Its integrated mode keeps storage and compute on the same nodes, which the Doris docs suggest for manageable scale and simpler operations, while its decoupled mode runs on shared storage such as S3, HDFS or OSS for elastic scaling. Doris is also an Apache Software Foundation project, and its README lists hybrid search across structured, text and vector data, with inverted and vector indexes. Choose Doris when search and vector retrieval sit alongside SQL analytics. The decision turns on four things: workload shape, update pattern (Doris's Unique model versus StarRocks's primary key model), storage model and the skills already on your team. Run a proof of concept with your own queries and catalogs before deciding.

Which platform fits which scenario

This table maps common workloads to the platform with the stronger fit and explains why. Read each row as a starting hypothesis: where both platforms are reasonable, the row says so and names the proof of concept check that should decide it.

ScenarioBetter fitReason and what to confirm
Customer-facing dashboards with high concurrencyEither, lean StarRocks for shared-data scalingBoth speak MySQL protocol and target real-time analytics. Confirm sustained concurrency and p95 latency at your query mix in a proof of concept, since neither fact set gives benchmark numbers for your workload.
Lakehouse acceleration over Iceberg, Delta Lake or HudiStarRocksThe StarRocks README describes querying Hive, Iceberg, Delta Lake and Hudi in place without importing data. Doris also lists Iceberg, Delta Lake and Hudi acceleration, so confirm connector coverage and version support for your catalog.
Lakehouse query layer shared with other enginesEither, confirm catalog supportBoth can sit in front of open table formats. Confirm which metastore and catalog types each supports in your environment and how write paths from Spark or Trino are handled.
Log and event observabilityApache DorisThe Doris README names observability over logs, events and metrics as a main use case, alongside hybrid search over text and vector data. Test ingestion rate and retention cost on your own event volume before committing.
A single cluster shared by multiple tenantsStarRocksThe StarRocks README lists resource management for isolating tenants within one cluster. Ask Doris for its equivalent isolation controls and test them under contention.
A team that wants integrated mode (storage and compute together)Apache DorisDoris documentation suggests integrated mode for manageable scale and simpler operations, with its FE and BE roles. StarRocks shared-nothing deployments follow the same FE and BE pattern, so either works, but Doris presents integrated mode as its default path.
Elastic scaling with data on object storageStarRocksStarRocks shared-data mode separates stateless compute nodes from object storage with a tiered cache, supported from version 3.0. Doris offers decoupled mode on S3, HDFS or OSS for elastic scaling, so confirm cache behavior and cold-query latency for your data.
Row-level updates and upsertsEither, verify the modelStarRocks offers a primary key model with upserts and deletes. Doris offers row-level updates in its Unique model. Confirm write throughput and compaction behavior with your update pattern.

How FE and BE roles differ in each engine

Both engines split the control plane from the data plane, but they draw the line in different places and handle storage differently. The cards below explain each role and what it means when you replace a node, scale the cluster or recover from a failure.

StarRocks FE roles: leader, follower, observer

StarRocks frontend nodes manage metadata, client connections, query planning and scheduling, and run as leader, follower or observer. The leader handles metadata writes, while followers and observers serve reads and provide failover candidates. For day-two work, confirm how many followers you need for your failure tolerance, how a failed leader is replaced, and whether observers can be added or removed without disrupting queries, using the current architecture documentation.

Doris FE roles: Master, Follower, Observer

Doris frontend nodes handle request handling, query parsing, metadata and node management, and run in Master, Follower and Observer roles. The Master is the metadata write point, so its failover and the election of a new Master decide how quickly the cluster recovers from a frontend outage. Ask the Doris team how metadata is persisted across FE nodes, what happens to in-flight DDL during a Master change, and what the recommended FE count is for your environment.

BE nodes store and compute together

In shared-nothing deployments, StarRocks backend nodes both store data on local disks and run queries, and Doris backend nodes store data with multiple replicas and run queries. Because data lives on the same machines that compute, adding capacity usually means adding nodes that rebalance data, and replacing a failed node means rebuilding or re-replicating its data. Plan the disk, replica count and rebalance window for each engine, and confirm the exact replica and recovery behavior in the vendor documentation before sizing hardware.

StarRocks shared-data compute and object storage

In StarRocks shared-data mode, stateless compute nodes run queries and cache data, while the data itself sits in object storage such as S3, GCS, Azure Blob Storage, MinIO or HDFS. A tiered cache spans memory, local disk and remote storage, so cold data is loaded from object storage into local cache on first read. Compute nodes can usually be replaced without moving data, but cache warm-up affects latency after a restart. Confirm cache sizing, eviction behavior and the storage backends you intend to use with the StarRocks team.

Doris decoupled mode on shared storage

Doris can run in integrated mode, where storage and compute share nodes, or decoupled mode, where data sits on shared storage such as S3, HDFS or OSS. The Doris docs suggest integrated mode for manageable scale and simpler operations, and decoupled mode for elastic scaling. Before choosing decoupled mode, ask how compute and storage nodes are added and removed, how caching works against remote storage, and which storage backends are supported in the release you plan to run.

Recovery and upgrade checks to confirm

Node replacement, scaling and recovery behave differently in each engine's two deployment modes, so a test plan matters more than a diagram. Run a leader or Master failover, remove a backend or compute node under load, and restore from object storage or replicas in a staging cluster that matches production. Record the results against each vendor's current docs, and confirm the upgrade path between the release you test and the one you will run, since the StarRocks 4.1.3 and Doris 4.1.5 release lines may change their defaults.

How each engine handles updates and storage models

StarRocks's primary key model is the option its README points to for upserts and deletes. Rows are identified by a primary key, so a later load for the same key replaces the earlier row, and delete operations remove rows by key. This suits workloads where source systems emit change records for entities that change over time, such as orders, account balances or device states, and where queries should see the latest version of each entity without the application deduplicating rows itself.

  • Write pattern: Continuous or batch upserts keyed on a stable identifier, plus explicit deletes.
  • When it matters: Your source of truth changes row by row and analysts need current state, not an append-only history.
  • Materialized views: The README says views refresh during import and are chosen automatically at query time. Confirm refresh cost and plan selection on your own tables before relying on them.
  • Indexing: Confirm which index types apply to primary key tables in your release, since index choice affects point lookups and filters.
  • Tenancy: Resource management isolates workloads within one cluster, which matters when several teams share upserted tables.

Before committing, load a representative sample of your change feed, run your heaviest upsert and delete batches, and measure query latency against the latest state of the largest tables in the release you plan to run.

Capability comparison from supplied facts

This table sets the two MPP databases side by side on the capabilities named in the supplied research, with the latest release each project published. Where the research does not confirm a capability for both platforms, the cell says what to verify before you rely on it. Read it as a checklist of what to test in a proof of concept, not as a ranking.

CapabilityStarRocksApache Doris
License and governanceApache License 2.0, described as a Linux Foundation projectApache License 2.0, an Apache Software Foundation project
Latest supplied release4.1.3, published September 17, 20264.1.5, published October 15, 2026
MySQL protocol compatibilityCompatible with the MySQL protocol, so MySQL clients and BI tools can connectHighly compatible with the MySQL protocol and standard SQL, so common client and BI tools connect
Lakehouse formatsQueries Hive, Iceberg, Delta Lake and Hudi in place without importingLakehouse query acceleration over Iceberg, Delta Lake and Hudi; confirm Hive coverage
Materialized viewsRefresh during data import and are selected automatically at query timeConfirm refresh behavior and automatic query rewrite in the version you plan to run
Resource isolationResource management for isolating tenants within one clusterConfirm tenant isolation and workload controls for your target version
Update modelPrimary key model with upserts and deletesUnique model with row-level updates; Duplicate and Aggregate models also available
Vector and inverted indexesNot listed in the supplied research; confirm before relying on itInverted and vector indexes supported, per the Doris documentation
Hybrid searchNot listed in the supplied research; confirm before relying on itHybrid search across structured, text and vector data, per the Doris README
Kubernetes operatorApache-2.0 operator maintained in the StarRocks Kubernetes operator repositoryNot covered in the supplied research; confirm the operator and its support status

Licensing, governance and editions

Both StarRocks and Apache Doris are licensed under the Apache License 2.0, so the core server code carries the same permissive terms on both sides. For most internal and customer-facing deployments, that means the license itself does not decide between them. Permissive terms allow you to run, modify and redistribute the code, subject to the license's notice and attribution conditions. The license does not cover everything you deploy, though. Your own extensions, connectors, Kubernetes manifests and any third-party images you pull are governed by their own terms, so review them as part of the same evaluation.

  • Core engine: Both projects publish their server code under Apache-2.0, as stated in the StarRocks README and the apache/doris repository.
  • Operator and tooling: StarRocks maintains an Apache-2.0 Kubernetes operator in its own repository. Confirm the license and maintenance status of any Doris operator or Helm chart you plan to use.
  • Bundled components: Check the licenses of drivers, storage connectors and third-party images that your deployment pulls in.
  • Redistribution: If you ship either engine inside your own product, have legal review the attribution and notice requirements.

Check the LICENSE and NOTICE files in the exact release tag you plan to deploy, and confirm that no component you add changes those terms.

What drives running cost for each engine

Running StarRocks or Apache Doris costs more than the software, which is free under Apache-2.0 for both. The cards below separate the recurring compute, storage and staff costs from the one-time work of design and migration, and list what to ask for in a written quote so the two engines can be compared on the same basis.

Compute and storage sizing

In shared-nothing StarRocks, backend nodes carry both compute and local disk, so adding capacity usually means adding nodes that hold data. In shared-data StarRocks, stateless compute nodes scale separately from object storage. Doris makes the same split with integrated mode versus decoupled mode. Ask each vendor or partner to size both the compute tier and the storage tier for your query concurrency and retention, and to show which one grows with data volume.

Object storage requests and egress

In shared-data StarRocks and decoupled Doris, the data sits in S3, GCS, Azure Blob, MinIO, HDFS or OSS, so each cold read and each load becomes a storage request that your cloud provider bills. Egress charges apply when data leaves the provider's network or region. Ask for an estimate of request volume per query pattern, and confirm whether your cloud account's egress rules apply to the cluster's traffic pattern.

Cache tier capacity

StarRocks shared-data mode keeps hot data in a tiered cache across memory, local disk and remote storage, and loads cold data into local cache on demand. A cache that is too small turns frequent queries into repeated object storage reads, which raises both latency and request charges. Confirm the cache size you need for your working set, and ask the vendor how to measure the hit rate before you commit to a node class.

Staff time for FE and BE or CN

Frontend nodes run as leader, follower or observer in StarRocks, and Doris uses Master, Follower and Observer roles, so both need a quorum and careful backup of metadata. Backend nodes in shared-nothing StarRocks, or compute nodes in shared-data mode, need monitoring, replacement and rebalancing. This is recurring engineering time, and it is usually the largest line item after compute. Ask who on your team or your partner's team owns on-call coverage for each role.

Upgrades across minor releases

Both projects ship frequent releases, with StarRocks 4.1.3 published on September 17, 2026 and Apache Doris 4.1.5 published on October 15, 2026. Each minor upgrade needs a test cycle against your BI tools, your SQL and your load jobs, and it recurs for the life of the platform. Ask for a written upgrade plan that covers rolling restarts, rollback steps and the testing your side must perform.

Third-party support and one-time setup

Neither engine has a paid license tier in the sources supplied, so support and setup are the paid items. A partner's implementation, hardening and migration work is one-time and fixed-scope when agreed in writing. Ongoing support, upgrades and testing are typically recurring retainers. Ask the partner to separate one-time build work from recurring support, and to name what is excluded from each.

Moving data from one engine to the other

This sequence shows how a team moves tables, queries and access controls from StarRocks to Apache Doris, or the reverse, without losing data or query correctness. It ends with a validated cutover that the team can roll back if a check fails.

  1. Inventory table models and update patterns

    List every database object in the current engine: table models, primary or unique key definitions, partitioning and bucketing, materialized views, external catalogs and the jobs that load or update each table. Note which tables depend on row-level upserts or deletes, because StarRocks uses a primary key model and Doris uses Duplicate, Aggregate and Unique models with row-level updates in the Unique model. The data platform or DBA team usually owns this work, with input from the application owners. The step is done when every object has a row in a shared inventory with its model, its load path and its named owner.

  2. Map schemas and MySQL client behavior

    Translate each schema into the target engine's DDL and confirm the data types, default values, nullability and key ordering match. Both engines advertise MySQL protocol compatibility, so test the exact drivers, connection pools, session variables and BI connectors your applications and dashboards use, rather than assuming they behave the same way. Ask each vendor or community for the supported SQL differences in your version, and record every query that needs rewriting. The step is done when a mapping document and a set of rewritten queries have passed review by the application owners.

  3. Decide what transfers as-is in the lakehouse

    Separate data you can keep where it is from data you must reload. Open table formats such as Iceberg, Delta Lake and Hudi live in object storage or HDFS, so both engines can attach to the same tables through a catalog without copying the files, provided the catalog definition, credentials and format versions are supported by the target. Confirm this with the engine's current catalog documentation and a test read before relying on it. The step is done when each external table has a verified read from the target engine.

  4. Reload native tables and rebuild dependent objects

    Native tables stored inside the engine must be exported or reloaded from source systems, and the load pipelines must be recreated against the new target. Materialized views, resource groups or workload isolation settings, and user, role and access rules do not transfer as-is, so rebuild them from the inventory and the documented policies. Row counts, checksums on key columns and sample aggregates should match the source for each reloaded table. Rebuilt access rules should be reviewed by the security team, since these are the controls auditors check first. The step is done when every object is recreated and its reconciliation report is signed off.

  5. Run both engines in parallel

    Keep the current engine serving production while the new engine receives the same loads and receives the same query set in shadow mode. Compare results for representative dashboards, customer-facing API queries and scheduled reports, including latency at peak times and the behavior of concurrent workloads. Document the differences, decide which are acceptable, and fix the rest. Ask the vendor or your implementation partner what monitoring they recommend for both engines during this window. The step is done when the agreed query set returns matching results within the tolerance the business owners accepted.

  6. Validate security controls and operations

    Confirm that authentication, network exposure, encryption settings, audit logging and backup and restore work on the target cluster the same way they do on the current one. Test restore procedures on a copy of the data, not only backups in theory. Your security and operations teams should own this check, and each control should map to a documented test result. The step is done when the security review and restore test are both recorded with named approvers.

  7. Cut over and keep a rollback path

    Switch application connection strings, BI data sources and scheduled jobs to the new engine in a planned change window, and keep the old cluster read-ready until the agreed rollback point has passed. Monitor query errors, latency and job failures closely during the first business cycles. If a critical check fails, route traffic back and reconcile any writes made during the window. The step is done when the old engine is formally retired or archived, and the cutover record lists every changed connection and approver.

Where StarRocks and Doris projects usually run long

Both platforms slip for the same reason: the data model is chosen late, and everything after it gets reworked. Before sizing hardware, decide which table model fits each workload. StarRocks offers a primary key model with upserts and deletes, and Doris offers Duplicate, Aggregate and Unique models with row-level updates in the Unique model. Choose the model per table with query patterns, update frequency and the expected key cardinality in hand. Benchmark design should use your own queries and data shape, not a generic TPC run, because both vendors support TPC-H and TPC-DS but your dashboards and API calls are what your users will feel. Ask the vendor or your own test team to confirm how each candidate model behaves under your update rate before you commit to a benchmark plan.

Cache sizing is the second common slip, and it applies mainly to StarRocks shared-data deployments and to Doris decoupled mode. Compute nodes serve hot data from a tiered cache across memory, local disk and object storage, so a cache that is too small turns dashboard refreshes into object storage reads. Plan the object storage connection (S3, GCS, Azure Blob, MinIO or HDFS for StarRocks; S3, HDFS or OSS for Doris decoupled mode), the catalog integration for Hive, Iceberg, Delta Lake or Hudi, and the credentials each catalog needs. Security review should begin at the same time. MySQL-protocol clients and BI tools will authenticate through accounts you define inside the database, so the account model, network exposure of FE ports and TLS settings belong in the design, not in the go-live checklist.

The client team must supply the workload inventory (query shapes, concurrency, freshness targets), the data owners who approve the model and retention decisions, the object storage and catalog administrators, and the identity contact who will map roles to database accounts. Ask for a written runbook covering observability of FE and BE or CN nodes, backup and restore, and an upgrade rehearsal against a copy of production. Test each BI tool connection against the exact MySQL-compatible endpoint you plan to use, since compatibility gaps usually appear in driver settings and metadata queries. Confirm current release support windows with each vendor before you fix an upgrade cadence, and get those commitments into the written scope.

Questions buyers ask before choosing or hiring help

What drives the cost of running StarRocks or Apache Doris in-house?

Most of the cost is people time and infrastructure, and neither engine carries a license fee because both are Apache-2.0 licensed. Infrastructure follows the deployment mode: shared-nothing clusters pay for backend nodes with local disks, while shared-data StarRocks and decoupled Doris pay for compute nodes plus object storage such as S3, GCS, Azure Blob Storage, MinIO, HDFS or OSS. Engineering time covers cluster sizing, MySQL protocol client onboarding, upgrades and monitoring. Ask any vendor or integrator for a written scope that separates one-time build work from recurring operations, and confirm current cloud and hardware prices with your own provider, since no price is given in this comparison.

How long does it take to reach a working proof of concept?

The duration depends mainly on the data sources, the number of query patterns you want to test, and whether you already have object storage and a Kubernetes platform. A proof of concept with one lakehouse catalog and one BI dashboard is smaller than a benchmark across TPC-H or TPC-DS style workloads. Both engines connect over the MySQL protocol, so BI connections can be tested early, but table design, the choice of key model and the load path usually decide the schedule. DeployOpen agrees timelines in writing as part of a fixed scope before work starts, so ask for the proof-of-concept scope, its exit criteria and the data volume it assumes.

Can an internal team run StarRocks or Apache Doris without outside help?

A team that already operates distributed databases, object storage and Linux infrastructure can run either engine, but it needs ownership of several moving parts. StarRocks has frontend nodes that run as leader, follower or observer, plus backend or compute nodes. Doris has frontend nodes in Master, Follower and Observer roles plus backend nodes. Upgrades, failover tests, backups and capacity planning then fall to your staff. Check whether your on-call rota can cover a database cluster, and whether you need help only for the first build, for ongoing operations, or for both.

How should I choose between shared-data and decoupled modes?

Choose based on how your scaling and storage needs change over time. StarRocks shared-data mode keeps data in object storage and uses stateless compute nodes with a tiered cache across memory, local disk and remote storage, which suits elastic compute. Doris decoupled mode uses shared storage such as S3, HDFS or OSS for elastic scaling. Doris documentation suggests integrated mode for manageable scale and simpler operations. Consider the cache warm-up behavior for cold data, your recovery expectations, and whether your platform team can operate object storage reliably. Test both candidate modes with your own query mix before committing.

What does migrating between StarRocks and Apache Doris cost?

Migration cost comes from schema translation, data movement, query rewrites and client changes. Both engines speak the MySQL protocol and standard SQL, which lowers the effort for BI connections, but table models differ: StarRocks offers a primary key model with upserts and deletes, while Doris offers Duplicate, Aggregate and Unique models with row-level updates in the Unique model. Materialized views, indexes and resource management settings also need mapping. Ask for a written inventory of tables, models, views and dependent dashboards, and a parallel-run period in the quote so that both platforms can be checked against the same results.

Which engine fits a lakehouse query layer better?

Both engines can query open table formats in place, so the decision depends on which catalogs and table formats you already run. StarRocks lists direct querying of Apache Hive, Apache Iceberg, Delta Lake and Apache Hudi without importing data. Doris highlights lakehouse query acceleration over Iceberg, Delta Lake and Hudi. Confirm the exact catalog types, versions and write-path features you need against the current documentation for each engine, because feature coverage changes between releases.

What does DeployOpen need from my team to scope an engagement?

DeployOpen plans, implements, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. To scope either engine, it needs your target deployment environment, expected data volumes, the BI and application clients that will connect, your identity and logging requirements, and the lakehouse catalogs in use. Engagements are usually fixed-scope, with deliverables and timelines agreed in writing before work starts. DeployOpen does not publish a price list, so a quote follows from that written scope.

How to run a fair proof of concept on your workload

Start by writing down the decision the proof of concept must support. Pick two or three representative queries from your own workload, one customer-facing lookup with a tight latency target, one heavier aggregation over your largest fact table, and one query that reads a lakehouse table in place, then set a concurrency target that matches your peak, not your average. Run each query at that concurrency against both StarRocks and Apache Doris on identical hardware or cloud instance sizes, with the same data volume and the same cache state. Illustrative example: if your product dashboard must return within a fixed time at 50 concurrent users, the test fails for either engine if it misses that bar on a cold cache, however good its warm-cache numbers look.

Load the same lakehouse tables into both engines, and do it the way production will. Use the catalog connections you plan to keep (Hive, Iceberg, Delta Lake or Hudi, depending on your estate) rather than copies, because a catalog or metadata difference can change plan quality more than the engine does. Then test update and delete behavior in the data model you intend to ship. In StarRocks, that means the primary key model with upserts and deletes; in Doris, the Unique model with row-level updates. Confirm how each handles late-arriving records, duplicate keys and deletes under sustained load, and record how long it takes for updated rows to appear in query results. Check the exact table definitions and key settings against the current documentation for the versions you install, since behavior depends on them.

Record operational steps as carefully as query times. Note every install step, every configuration key you had to change, how the cluster handled a restart or a failed node, and how many hours of your team's time each step took. Write down the results before anyone chooses: p95 and p99 latency per query at target concurrency, failure and retry counts, data freshness after writes, resource use, and the exact versions tested. Confirm with each vendor or community the support windows and upgrade path for the version you plan to run, and ask your partner or internal team to repeat the test once after an upgrade, because the upgrade is where many self-hosted analytics clusters hit their first surprise.

How DeployOpen helps choose, implement or migrate

DeployOpen plans, implements and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For StarRocks vs Apache Doris, we start with the workload, the deployment model and the governance requirements, then agree the work in writing before any build begins.

How we scope

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • We review whether your workload points to shared-nothing or shared-data deployment on object storage.
  • We confirm which lakehouse catalogs, table formats and BI clients must connect to the cluster.
  • We ask you to confirm the expected concurrency, data volumes and update patterns before design begins.

How we build

  • We deploy the frontend and backend or compute nodes in your environment, following the architecture you choose.
  • We configure MySQL protocol access for the BI and application clients named in the written scope.
  • We set up table models, including the update model selected for your change data patterns.
  • We test query performance and failover against the workloads defined in the scope before handover.

How we hand over

  • You receive documentation covering the deployed topology, configuration, access paths and operating procedures.
  • We document the upgrade path for the versions in use and the steps to migrate between the two platforms if needed.
  • Runbooks cover backup, restore and node replacement for the specific deployment model you run.
  • We walk your platform and operations teams through the system before the engagement closes.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Retainers can cover version upgrades, security patching and performance reviews as your data grows.
  • We can prepare evidence and configuration records for compliance assessments, though auditors issue the actual reports.
  • Ask us to confirm the retainer scope, response expectations and exclusions in writing before you sign.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.