Overview
FerroDruid is a Rust-native, Apache-Druid-spec-compatible real-time OLAP database. It speaks the Druid REST API, native query JSON, and Druid SQL, and it reads Apache Druid segment v9 binary files (read compatibility verified against segments written by Druid 31.0.2 and 35.0.1, on local disk) - without a JVM, without ZooKeeper, and without a six-process control plane. A classic Apache Druid cluster needs six or more JVM processes plus ZooKeeper plus an external metadata database and 16 GB or more of RAM before it serves a query. FerroDruid's single-binary container replaces all of that with one process that starts in under a second on under 200 MB of RAM, so it runs cleanly on Amazon EKS and on serverless container compute (ECS/Fargate) where a classic Druid cluster cannot. What it does today (v1.2.0): it serves all eight Druid native query types; it runs Druid SQL (SELECT, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, 30+ functions, EXPLAIN PLAN FOR, an MSQ task endpoint; about 95 percent core SQL parity); it exposes 40+ Druid-compatible REST endpoints; it reads Apache Druid segment v9 - verified against segments written by Druid 31.0.2 and 35.0.1 - and writes segments in its own native format (the single-binary path uses SQLite metadata plus local-filesystem deep storage); it ingests from Kafka and Kinesis supervisors and via native batch; and it enforces Basic authentication (Argon2id) with role-based access control on by default and TLS via rustls. The admin account is created on first boot with a random per-instance password and the operator is required to change it on first login before any endpoint serves traffic. Engineering posture is verifiable: every crate uses #![forbid(unsafe_code)], clippy is clean at -D warnings, a CycloneDX SBOM and 18 fuzz targets run in CI, and images are cosign-signed. Live wire deep-match is clean against Apache Druid 31.0.2, 32.0.1, 33.0.0, 34.0.0, 35.0.1 and 36.0.0: on each version, 42 of 48 deep-compared queries match byte-for-byte with 0 mismatches (Sections 1 through 4 are 30 of 30 deep on every version), plus 5 of 5 with an Apache Superset connector. Druid 30.0.1 is the one partial version at 24 of 48, and every one of those diffs is Druid 30's own upstream behaviour of returning an empty result for SQL window functions (even with windowing enabled), not a FerroDruid defect. New in v1.2.0: SQL UNION ALL with Druid-compatible positional column mapping; a null-generation load path so NULL-typed columns round-trip faithfully; fail-closed Historical segment routing with exact O(1) cache-limit accounting; and a verified read of a real Apache Druid v9 segment round-tripped through real AWS S3 deep storage. The Helm chart deploys the supported single-binary shape and fails closed on multi-node / external-metadata / external-deep-storage values. The container performs an AWS Marketplace RegisterUsage entitlement check at startup and serves only if entitled. FerroDruid is now source-available under the Business Source License 1.1 (github.com/abyo-software/ferrodruid), converting to Apache-2.0 four years after each release; this listing sells a hardened, scanned, supported distribution. Commercial support is provided exclusively through AWS Marketplace (Standard support included with every paid subscription; Business and Enterprise tiers via AWS Marketplace private offers).
Highlights
- FerroDruid runs as one container, not six JVMs: it needs no ZooKeeper and no external metadata database in single-binary mode, and it boots in under a second on under 200 MB of RAM on EKS and ECS/Fargate.
- Druid wire-compatible: speaks the Druid REST API, native query JSON, and Druid SQL, and reads Apache Druid segment v9 (verified against Druid 31.0.2 and 35.0.1, including one round-tripped through real AWS S3). Live wire deep-match is clean against Apache Druid 31.0.2 through 36.0.0 - 42 of 48 queries match byte-for-byte, 0 mismatched on each - and 5 of 5 with an Apache Superset connector (Druid 30.0.1 partial, from Druid 30's own window-function behaviour, not a FerroDruid defect).
- FerroDruid is hardened and supported: every crate uses #![forbid(unsafe_code)], clippy is clean at -D warnings, a CycloneDX SBOM and 18 fuzz targets run in CI, the admin must change its password on first login, and a paid support SLA is included (transacted exclusively through AWS Marketplace).
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Free trial
Dimension | Description | Cost/unit/hour |
|---|---|---|
Hours | FerroDruid container usage per task/pod, per hour. | $0.10 |
Vendor refund policy
FerroDruid container charges are metered by AWS Marketplace per task/pod-hour; scale down or terminate the FerroDruid tasks/pods to stop all charges (you pay only for the task-hours you run). Already-incurred usage is generally non-refundable. If billed in error or a defect prevented normal use, contact aws-support@abyo.net within 30 days and we will review; warranted refunds are processed through AWS Marketplace.
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
FerroDruid container via Helm chart (Amazon EKS)
- Amazon EKS
Container image
Containers are lightweight, portable execution environments that wrap server application software in a filesystem that includes everything it needs to run. Container applications run on supported container runtimes and orchestration services, such as Amazon Elastic Container Service (Amazon ECS) or Amazon Elastic Kubernetes Service (Amazon EKS). Both eliminate the need for you to install and operate your own container orchestration software by managing and scheduling containers on a scalable cluster of virtual machines.
Version release notes
v1.5.1 - legacy-Druid migration compatibility, on the durable Kafka (SASL_SSL) single-binary stack. New in 1.5.1: FerroDruid now reads the v1 numeric column serdes (long, double, float) that Apache Druid version 27 and earlier write for the time and metric columns, so ferrodruid-migrate attach and import-druid-metadata work on segments from a genuinely old Druid deployment (reverse-engineered clean-room, verified byte-exact against real Druid 27.0.0 dump-segment); Druid 31 and 35 reading is unchanged. Also in the 1.5.x line: cross-engine hyperUnique read (native double bit-exact vs Druid 31); opt-in legacy null mode (useDefaultValueForNull, default off, Druid 27-and-earlier semantics, verified vs Druid 27/31, ANSI byte-identical with the flag off); and attach/import directly from S3 deep storage. Carried forward: attach Druid v9 segments (local or S3), import a Druid metadata database (PostgreSQL/MySQL/SQLite), reverse-migration v9 write-back (long + single-value string), Kinesis and native-batch ingestion, and broader Druid v9 reading. RegisterUsage-gated and billed per task/pod-hour; the chart deploys only the supported single-binary shape and fails closed on multi-node / external-metadata / external-deep-storage. Forced admin password change on first login. Source available under BUSL-1.1; known limitations in docs/known-limitations.md.
Additional details
Usage instructions
Subscribe, then install the Helm chart on Amazon EKS. The chart deploys the supported single-binary shape (SQLite metadata + local-filesystem deep storage) and fails closed on multi-node / external-metadata / external-deep-storage values. The paid container calls AWS Marketplace RegisterUsage at startup and serves only if entitled. On first launch the admin account is created with a random per-instance password (logged once) and flagged must-change, so every endpoint returns 403 until you rotate it via POST /druid-ext/basic-security/authentication/db/basic/users/admin/credential. The chart pre-sets marketplace.productCode and marketplace.awsRegion (us-east-1; override for other regions); grant the pod aws-marketplace:RegisterUsage via an IRSA role. To migrate from an existing Druid deployment (including Druid 27-and-earlier segments) use ferrodruid-migrate attach (local or s3://) or import a Druid metadata database; enable --use-default-value-for-null for legacy null semantics. Pull: helm pull oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/abyo-software/ferrodruid-helm --version 1.5.1 . Point Druid clients (REST API, native query JSON, Druid SQL, Superset) at the service. See docs/known-limitations.md.
Support
Vendor support
Support for FerroDruid is provided by abyo software LLC. Paid AWS Marketplace subscribers receive commercial support under a published response-time SLA: email aws-support@abyo.net with your AWS account ID, the AWS Marketplace product name (FerroDruid), and a description of the issue. Severity-1 production-down issues are responded to within 1 business day for Standard subscribers. Business and Enterprise support tiers are offered exclusively via AWS Marketplace private offers; all commercial support arrangements are transacted through AWS Marketplace and the seller does not offer off-Marketplace contracts. Refund processing is handled exclusively through AWS Marketplace. Report security vulnerabilities to security@ferro.abyo.net (acknowledged within 48 hours). Product documentation: https://github.com/abyo-software/ferrodruid#readme . Known limitations:
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.