Repository navigation
Service Redpanda
Redpanda is an optional, disabled-by-default Kafka API broker for data-engineering streaming. Atlas runs one local broker, a topic-bootstrap init container and Redpanda Console.
The Atlas Spark image includes the Kafka Structured Streaming jars. Spark Connect jobs (the JupyterHub notebooks) and cluster-mode Airflow submits therefore read and write Kafka without --packages downloads. Zeppelin and client-mode Airflow submits run their driver in images without these jars. There, add --packages org.apache.spark:spark-sql-kafka-0-10_2.13:<spark version>.
| Surface | URL / endpoint | Notes |
|---|---|---|
| Kafka API, in-network | redpanda:9092 |
Use from Spark, Airflow tasks, notebooks, and other containers. |
| Kafka API, host | localhost:${REDPANDA_KAFKA_PORT} |
Direct Kafka client access, with no authentication. Loopback-only by default (HOST_BIND_IP=127.0.0.1:). |
| Redpanda Console, direct | http://localhost:${REDPANDA_CONSOLE_PORT} |
Direct host port for local development. Not gated by Redpanda. Loopback-only by default (HOST_BIND_IP=127.0.0.1:); keep that value on shared hosts. |
| Redpanda Console, Kong | http://redpanda.localhost:${KONG_HTTP_PORT} |
Routed through Kong with dashboard basic auth. |
REDPANDA_SOURCE=disabled by default. Enable the service with:
./start.sh --track data-eng --redpanda-source containerThe init container creates the comma-separated topics in REDPANDA_DEMO_TOPICS; the default is REDPANDA_DEMO_TOPICS=atlas_stream_events. Leave it blank or remove topics from the list when you want a broker with no Atlas-created demo topics. The init container only creates topics. A topic that already exists in the volume stays until you delete it, for example with rpk topic delete or the Console.
To create project topics before a Spark job subscribes, set them in .env, for example REDPANDA_DEMO_TOPICS=events,online_retail_cdc. Redpanda runs in dev-container mode, so producer-first flows can create a topic on first write. Readers that expect a topic to exist should pre-seed it.
Broker data persists in the ${PROJECT_NAME}-redpanda-data volume; ./stop.sh --cold removes it. The dev-container mode also turns on --unsafe-bypass-fsync and write caching. An acknowledged record is not yet on disk, so a host or Docker VM crash can lose the most recent writes. Treat the broker as a development stream, not a system of record, and replay from the source after a crash.
When Redpanda is enabled, Atlas sets in-network bootstrap values in .env:
-
REDPANDA_BROKERS=redpanda:9092(written to.envonly; no container receives it) -
SPARK_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092(passed to Spark, Airflow, JupyterHub and Zeppelin)
These are container-network endpoints. Host-side clients should use localhost:${REDPANDA_KAFKA_PORT} instead.
Image pins:
REDPANDA_IMAGE=docker.redpanda.com/redpandadata/redpanda:v26.1.12REDPANDA_CONSOLE_IMAGE=docker.redpanda.com/redpandadata/console:v3.8.0
Atlas bakes the Spark Kafka connector into services/spark/build/Dockerfile:
org.apache.spark:spark-sql-kafka-0-10_2.13:4.1.2org.apache.spark:spark-token-provider-kafka-0-10_2.13:4.1.2org.apache.kafka:kafka-clients:3.9.2org.apache.commons:commons-pool2:2.12.1
Example Spark read:
events = (
spark.readStream.format("kafka")
.option("kafka.bootstrap.servers", "redpanda:9092")
.option("subscribe", "atlas_stream_events")
.option("startingOffsets", "earliest")
.load()
)Use durable streaming checkpoints when writing to the lakehouse:
query = (
events.writeStream
.format("iceberg")
.option("checkpointLocation", "s3a://checkpoints/redpanda/atlas_stream_events")
.toTable("lakehouse.bronze.stream_events")
)Support tier: experimental — Capability contract declared; no cited cold-start, workflow, or upgrade qualification run yet (evidence at v0.1.0).
| Capability | Status | Verification | Notes |
|---|---|---|---|
| Single-node Kafka-compatible streaming | supported | tested | Atlas runs a Redpanda broker in single-node development mode and exposes its Kafka API to in-stack and host clients. |
| Topic bootstrap and broker console | supported | tested | An idempotent init container creates the declared Atlas topics and the bundled Console provides browser-based broker inspection. |
| Production broker security and clustering | not-supported | documented | The stock deployment has one broker and configures no SASL, TLS, Schema Registry, Kafka Connect, or multi-broker replication. |
| Broker and Console access control | partial | documented | The Kong Console route uses Basic authentication and the dashboard_user ACL. The direct Console and Kafka listener are ungated; keep the default HOST_BIND_IP=127.0.0.1: on shared hosts. |
Atlas does not include Kafka Connect, Debezium, Redpanda Connect, Schema Registry, multi-broker clustering, SASL/TLS or production retention tuning.
-
redpanda.localhostreturns 404 or dashboard HTML: confirmREDPANDA_SOURCE=containerand rerun./start.sh --setup-hosts. - Spark cannot find the
kafkaformat: run./start.shso it rebuilds the local Spark image (services/spark/build/Dockerfileinstalls the Kafka jars under/opt/spark/jars). Zeppelin and client-mode Airflow drivers need--packages(see §1). - Host Kafka clients cannot connect: use
localhost:${REDPANDA_KAFKA_PORT}, not the Kong port. Kafka is a binary protocol and is intentionally not routed through Kong.
No upstream calls.
| Service | Category | Status |
|---|---|---|
| kong | infra | current |
| spark | data | current |
| airflow | agents | optional: an operator-authored DAG; Atlas passes only SPARK_KAFKA_BOOTSTRAP_SERVERS |
| jupyterhub | apps | current |
| zeppelin | apps | optional: Kafka jars not bundled (#1376); Atlas passes only SPARK_KAFKA_BOOTSTRAP_SERVERS |

Open the full-size diagram for a full-screen view.
No high-confidence opportunities identified.
No high-confidence opportunities identified.
No high-confidence opportunities identified.
Atlas documentation.
- 1. Overview
- 2. Quick Start
- 3. Core Concepts
- 4. Tracks
-
5. Services
- 5.1. Service Catalog
-
5.2. Service Guides
- 5.2.1. airflow
- 5.2.2. asset-baker
- 5.2.3. asset-worker
- 5.2.4. backend
- 5.2.5. backup
- 5.2.6. blender-mcp
- 5.2.7. celery
- 5.2.8. chatterbox
- 5.2.9. cloud-providers
- 5.2.10. cloudflared
- 5.2.11. comfyui
- 5.2.12. crawl4ai
- 5.2.13. doc-processor
- 5.2.14. docling
- 5.2.15. docling-lightrag-adapter
- 5.2.16. fal
- 5.2.17. globals
- 5.2.18. grafana
- 5.2.19. hermes
- 5.2.20. iceberg-rest
- 5.2.21. jenkins
- 5.2.22. jupyterhub
- 5.2.23. kong
- 5.2.24. label-studio
- 5.2.25. langfuse
- 5.2.26. lightrag
- 5.2.27. litellm
- 5.2.28. llm-graph-builder
- 5.2.29. local-deep-researcher
- 5.2.30. loki
- 5.2.31. mcp-servers
- 5.2.32. minio
- 5.2.33. mlflow
- 5.2.34. multi2vec-clip
- 5.2.35. n8n
- 5.2.36. neo4j
- 5.2.37. ollama
- 5.2.38. open-webui
- 5.2.39. openclaw
- 5.2.40. otel-collector
- 5.2.41. parakeet
- 5.2.42. prometheus
- 5.2.43. ray
- 5.2.44. redis
- 5.2.45. redpanda
- 5.2.46. searxng
- 5.2.47. spark
- 5.2.48. speaches
- 5.2.49. stt-provider
- 5.2.50. supabase
- 5.2.51. supavisor
- 5.2.52. tei-reranker
- 5.2.53. tempo
- 5.2.54. tika
- 5.2.55. trino
- 5.2.56. trueforge
- 5.2.57. tts-provider
- 5.2.58. verba
- 5.2.59. vllm-metal
- 5.2.60. weaviate
- 5.2.61. zeppelin
- 5.3. Provider And Extension Guides
- 6. Configuration
- 7. Operations
- 8. Architecture
- 9. Development
- 10. Reference