Skip to content

ZeptoDB Backlog

Completed features: COMPLETED.md | 933 tests passing

Last cleaned: 2026-04-11


✅ Fully complete: Dashboard overview (stats, tables, ingestion chart, drop rate), Cluster dashboard (topology, distribution, time-series), Query editor (all QE-1~15), Table schema browser


TaskWhyEffort
Website (zeptodb.com)✅ Astro Starlight site built (zeptodb-site/). All pages complete
↳ Landing page✅ Hero + benchmark comparison + use case cards + CTA
↳ Features / Performance / Use Cases✅ Features, Benchmarks, 4 use-case pages, 4 competitor comparisons
↳ Pricing / Blog / About✅ Pricing (Community/Enterprise), 4 blog posts, About, Contact
Docs site deployment automation✅ GitHub Actions build-deploy.yml + sync-docs.mjs
Use Cases page✅ Trading, IoT, Robotics, Autonomous Vehicles
Blog (devlog migration)✅ 4 posts from devlogs (Intro, ASOF JOIN, Zero-Copy Python, Lock-Free Ingestion)
Blog: additional devlog migrationRemaining 46 devlogs → blog posts for SEO long-tailS
TaskWhyEffort
YouTube / Loom demo video2-minute demo video. Embed in README + landing page. 3x conversion vs textS
TaskWhyEffort
Multi-arch Docker (amd64 + arm64)✅ Release workflow builds amd64. arm64 build in CI
GitHub Releases + binaries✅ Release workflow: amd64 + arm64 tarballs on tag push
Homebrew Formulahomebrew-tap repo + auto-update workflow on release
PyPI package (pip install zeptodb)⚠️ Workflow ready, but PyPI trusted publisher not configured. Manual: pypi.org → Manage → Publishing → add ZeptoDB/ZeptoDB workflow release.yml environment pypiXS
TaskGuide DocumentPrerequisitesEffort
Configure PyPI trusted publisherpypi.org → Manage → PublishingPyPI account with zeptodb projectXS
Configure TestPyPI trusted publishertest.pypi.org → Manage → Publishing (env: testpypi, workflow: test-pypi.yml)TestPyPI accountXS
Enable GitHub Discussionsrepo Settings → Features → DiscussionsXS
Submit Awesome Time-Series DB PRdocs/community/REGISTRY_SUBMISSIONS.mdGitHub repo publicXS
Submit DB-Engines registration formdocs/community/REGISTRY_SUBMISSIONS.mdzeptodb.com liveXS
Record demo GIFasciinema rec → convert to GIF → uncomment in READMEDocker imageXS
Post Show HNdocs/community/LAUNCH_POSTS.mdDocker image + website + DiscordXS
Post on Reddit (5 subreddits)docs/community/LAUNCH_POSTS.md1-2 day gap after Show HNXS

Runtime license-gated feature tiers. Single binary, license key activates features. Design principle: features are visible but gated — CLI, Web UI, HTTP API all show upgrade prompts.

TaskWhyEffort
License key validatorSigned JWT license key — verify edition/expiry at startup. include/zeptodb/auth/license_validator.hM
Feature gate helperlicense::hasFeature(Feature::Cluster) check + 402 error response helperS
Startup banner with edition[INFO] ZeptoDB v0.x.x (Community Edition) + upgrade hints in logXS
Trial key support30-day Enterprise trial key generation + expiry enforcementS
Feature to GateWhereEffort
SSO / SAML / OIDC loginauth/sso_provider.h — return 402 on CommunityS
Audit log exportauth/audit_buffer.h — buffer works, export endpoint gatedS
Advanced RBACRow-level security, column masking — gate in executorM
Per-tenant rate limitingserver/rate_limiter.h — basic=Free, per-tenant=ProS
Kafka/Pulsar connectorsfeeds/kafka_consumer.h — gate on startupXS
Feature to GateWhereEffort
Multi-node clustercluster/* — gate ClusterNode::start(), addNode()S
Live rebalancingcluster/rebalance_* — gate rebalance API endpointsS
Geo-replicationGate when implemented
EKS/K8s operatorHelm chart available, operator gatedS
Rolling upgradeGate upgrade coordinator endpointS
kdb+/ClickHouse migrationmigration/* — gate migrator startupXS
TaskWhyEffort
Gated feature cardsSidebar shows Cluster/SSO/Audit menus → click shows upgrade modal with [View Plans]S
/api/license endpointReturns current edition + feature list for UI to render gatesXS
Pricing page linkzeptodb.com/pricing in all gate messagesXS
TaskWhyEffort
402 response standard{"error":"enterprise_required","message":"...","upgrade_url":"https://zeptodb.com/pricing"}XS
/admin/license endpointShow current license info, accept license key uploadS

✅ Fully complete (Arrow Flight server). No remaining items.


TaskWhyEffort
ClickHouse wire protocolNative connection for DBeaver, DataGrip, GrafanaL
JDBC/ODBC driversTableau, Excel, Power BIL

TaskWhyEffort
Kafka Connect SinkEnterprise data pipeline standardM
CDC connectorPostgreSQL/MySQL → real-time syncM
AWS Kinesis consumerAWS-native streamingS
Apache Pulsar consumerKafka alternativeS

TaskWhyEffort
Cloud MarketplaceAWS/GCP one-click deploymentM
Geo-replicationMulti-region, global trading desksL
SAML 2.0 supportFor SAML-only environments such as banks/insuranceL

✅ Already done: Vault-backed API Key Store, OIDC Discovery, SSO login flow, JWT Refresh, Server-side sessions, IdP group→role mapping


TaskEngine ImpactEffort
Composite index🔴 MajorM
MV query rewrite✅ Done (devlog 064)
Cost-based planner🔴 MajorL
JOINs/Window on virtual tables🟠 ModerateM
SIMD-ify WindowJoin aggregate loop🟠 ModerateM
JIT SIMD emitL
DuckDB embeddingM
Limited DSL AOT compilationM

✅ Already done: Tier A (INTERVAL, Prepared statements, Query result cache, SAMPLE, Scalar subqueries), FlatHashMap joins


✅ P8-Critical, P8-High, P8-Medium all complete.

TaskImpactEffort
WAL replication RDMA PUTRemove ingest throughput bottleneck. TCP ~50μs → RDMA ~1-2μsM
Remote column scan RDMA GETZero DataNode CPU overhead for scatter-gather queriesL
Partition migration RDMA GETZero service impact on source node during live rebalancingM
Failover re-replication RDMA GETMinimize replica replication overhead on node failureM
remote_ingest_regions_ wire-upActual connection of RDMA ingest pathS

P8-Feature — Distributed Feature Expansion

Section titled “P8-Feature — Distributed Feature Expansion”
TaskWhyEffort
Live rebalancing✅ Done (devlog 055)
Dual-write ingestion wiring✅ Done (devlog 055)
Multi-node benchmark execution✅ Rebalance load test done (devlog 056)
Partial-move rebalance API✅ Done (devlog 058) — start_move_partitions() + HTTP move_partitions action
Rebalance query routing safety✅ Done (devlog 057) — recently_migrated() grace period
peer_rpc_clients_ thread safety✅ Done (devlog 057) — shared_mutex in ClusterNode
Move timeout enforcement✅ Done (devlog 057) — move_timeout_sec in RebalanceConfig
Rebalance progress in Web UI✅ Done (devlog 059) — cluster dashboard rebalance panel
Rebalance bandwidth throttling✅ Done (devlog 062) — BandwidthThrottler rate limiter, 10 tests
Rebalance history endpoint✅ Done (devlog 060) — /admin/rebalance/history + Web UI table
Tier C cold query offloadHistorical data → DuckDB on S3M
PTP clock sync detection✅ Done (devlog 063) — PtpClockDetector with strict mode
Global symbol registryDistributed string symbol routing — rebalance must migrate symbol dictionaryM

TaskWhyEffort
MQTT ingestionIoT devicesS
OPC-UA connectorSiemens S7, industrial PLCsM
ROS2 pluginROS2 topics → ZeptoDBM

TaskWhyEffort
User-Defined FunctionsPython/WASM UDFL
Pluggable partition strategysymbol_affinity / hash_mod / site_idM
Edge mode (--mode edge)Single node + async cloud syncM
HyperLogLogDistributed approximate COUNT DISTINCTS
Variable-length stringsLogs, comments, and other free-textM
HDB CompactionParquet mergeS
Snowflake/Delta Lake hybridM
Graph index (CSR)Fund flow trackingL
InfluxDB migrationInfluxQL → SQLS

PriorityCategoryRemainingNext Action
P1Demo-ready UI✅ 0Complete
P2Website + Distribution2 + 8 manualPyPI trusted publisher, Blog expansion
P2.5Monetization (Edition)18License validator, Feature gates
P3Connectivity✅ 0Complete
P4Tool Integration2ClickHouse protocol, JDBC/ODBC
P5Data Pipelines4Kafka Connect, CDC
P6Enterprise / Cloud3SAML, Geo-replication, Marketplace
P7Engine Performance7Composite index, Cost-based planner
P8Cluster14RDMA transport, Rebalance hardening
P9Physical AI / IoT3MQTT, OPC-UA, ROS2
P10Extensions9UDF, Edge mode

Total remaining: 62 items + 8 manual tasks

Critical path: P2.5 (license system) → P8 (cluster) → P4 (Tool Integration)