Knowledge Hub Architecture

Platform Architecture

DataKnits separates the Control Plane (design, compile, govern) from the Execution Plane (run on your Spark). Your data never transits through DataKnits servers — only generated code artifacts and metadata do.

Logical Architecture

DataKnits follows a layered, decoupled architecture:

Key principle: The Control Plane stores only metadata, pipeline definitions, and encrypted credential payloads. The Execution Plane (your Spark cluster) is where actual data movement happens. DataKnits never sees plaintext data in motion.
DataKnits High-Level Architecture
High-Level Architecture Overview

Control Plane Components

Execution Plane

The Execution Plane is entirely on customer-owned infrastructure. DataKnits generates a self-contained PySpark script (or SQL for pushdown scenarios), which is submitted to:

Compute Modes

ModeEngineBest ForGenerated Artifact
SQL Pushdown (ELT)Source DatabaseWithin-warehouse transformations — Snowflake, Redshift, BigQueryRaw SQL file
PySpark (Remote)Customer Spark (EMR / YARN / K8s)Cross-system moves, complex transforms, large-scale batch.py PySpark script
DatabricksDatabricks Jobs APIDelta Lake workloads, Unity Catalog integration.py + cluster config JSON
Local SparkEmbedded Spark (dev mode)Development, testing, small datasets.py PySpark script

Pushdown Eligibility System

DataKnits automatically analyzes each pipeline segment and determines whether it can be pushed down to the source database or must execute in PySpark. Rules:

Connector Architecture

All connectors — regardless of technology — expose a uniform interface:

No SDK lock-in: The DataKnits backend never imports AWS SDK, GCP client libraries, or Azure SDK. All connectivity uses open protocols: JDBC, Hadoop-compatible filesystem APIs (S3A / GCS / WASB / ABFS), and open REST APIs. This guarantees cloud neutrality in all generated code.

Credential Zero-Knowledge

Credentials are stored only as encrypted payloads (AES-256 via pgcrypto). Decryption happens at pipeline execution time in the Spark context. The secret resolution chain at runtime is:

  1. Spark session config (injected by DataKnits codegen)
  2. AWS Secrets Manager
  3. Azure Key Vault
  4. GCP Secret Manager
  5. HashiCorp Vault
  6. Environment variable fallback

Pipeline IR & Versioning

Pipeline versions are immutable. The UI emits a stable JSONB Intermediate Representation (IR) that is independent of UI widget structure. The IR is stored in PostgreSQL (pipeline_content table).

DataKnits Technical Architecture
Technical Architecture Details

On-Prem Iceberg Lakehouse (Docker)

DataKnits ships a reference on-prem lakehouse via Docker Compose with four services:

ContainerRole
etl1-spark-icebergPySpark compute. Submits jobs, does NOT own table data.
etl1-iceberg-restIceberg REST catalog — control plane for namespaces, tables & schemas.
etl1-minioObject storage (S3-compatible). Persists warehouse files and Iceberg metadata.
DataKnits BackendImports Iceberg metadata into ETL1 catalog DB; submits generated jobs to Spark.

Data flow: Spark ↔ Iceberg catalog (alias lakehouse) ↔ MinIO (s3://lakehouse/warehouse). Persistence comes from the Docker volume compose_minio-data.

Non-Functional Requirements

AttributeTarget
Availability99.5% SaaS; graceful degradation if codegen service is down.
ScalabilityHorizontal API scaling; async compilation; DB read replicas.
Performance — DAG load< 2 seconds (300-node pipeline).
Performance — Validation< 1 second typical.
Performance — Compile< 30 seconds typical; < 3 minutes for very large pipelines.
SecurityEncryption at rest, RBAC, audit log retention, tenant isolation.
ReliabilityIdempotent compilation, retryable jobs, deterministic codegen.
ExtensibilityPlugin architecture for connectors and transformations.
ComplianceSOC2-aligned, least-privilege, change management.