Skip to main content

Data Engineering Architecture Composer CLI

Project description

DEGEN — Data Engineering Project Generator

Python License Version

Scaffold production-ready data pipelines in minutes, not hours.

DEGEN is a CLI framework for data engineers. Answer three questions about your architecture, and DEGEN generates a complete, working project — Docker services, dependencies, configuration, pipeline scripts, and a unified degen command to run everything.


Install

pipx install degen-cli

Requires Python 3.12+ and Docker.


Quick start

degen init           # interactive project scaffold
cd my_project

degen install        # install dependencies
degen docker-up      # start services (Kafka, Postgres, etc.)
degen run            # execute the pipeline
degen ui             # list all web interfaces
degen status         # project health check

Architecture Patterns

Batch ETL

Extract data, transform with dbt, store in DuckDB or Postgres.

degen init           # select Batch ETL → Python + dbt + DuckDB
degen install
degen run            # extract → dbt run
degen seed           # load seed data
degen test           # dbt data quality tests
degen notebook       # Jupyter Lab at http://localhost:8888
degen docs           # dbt docs at http://localhost:8081

Analytics

Orchestrate with Prefect or Airflow, visualize with Grafana or Metabase.

degen init           # select Analytics → Prefect + dbt + Postgres + Grafana
degen install
degen docker-up      # Postgres + pgAdmin + Grafana
degen prefect-server # Prefect UI at http://localhost:4200
degen run            # run Prefect flow
degen docs           # dbt docs at http://localhost:8081

Streaming

Real-time event processing with Kafka and PySpark.

degen init           # select Streaming → Kafka + PySpark
degen install
degen docker-up      # Kafka + Kafka UI at http://localhost:8082
degen create-topic   # create Kafka topic
degen produce        # send 100 events to Kafka
degen stream         # PySpark consumer + Spark UI at http://localhost:4040

Every tool has a web UI

Tool Interface Port
Kafka Kafka UI :8082
Postgres pgAdmin 4 :5050
ClickHouse ClickHouse Play :8123/play
DuckDB Jupyter Lab (degen notebook) :8888
dbt dbt Docs (degen docs) :8081
PySpark Spark UI (auto) :4040
Airflow Airflow UI :8080
Prefect Prefect UI :4200
Metabase Metabase :3000
Grafana Grafana :3001

What DEGEN generates

Every project includes:

my_project/
├── degen.yaml              # project manifest — pattern, tools, commands
├── docker-compose.yml      # all services, pre-wired and ready
├── requirements.txt        # pinned dependencies
├── .env                    # environment variables with sensible defaults
├── Makefile                # for CI/CD and power users
├── profiles.yml            # dbt connection config (when applicable)
├── src/
│   └── extract.py          # pipeline scripts
└── my_project/             # dbt project (when applicable)
    ├── dbt_project.yml
    └── models/

Every command you'd normally wire up manually — python -m venv, pip install, dbt init, docker compose up, dbt run, jupyter lab — becomes a single degen command with real-time Rich output.


degen.yaml

The project manifest defines all available commands:

project: my_project
pattern: Batch ETL
tools:
  - Python
  - dbt
  - DuckDB
ui:
  Jupyter Lab: http://localhost:8888
  dbt docs: http://localhost:8081
commands:
  install:
    steps:
      - python -m venv .venv
      - .venv/bin/pip install -r requirements.txt
      - .venv/bin/dbt init my_project --skip-profile-setup
  run:
    steps:
      - .venv/bin/python src/extract.py
      - cd my_project && ../.venv/bin/dbt run --profiles-dir ..
  seed:
    steps:
      - cd my_project && ../.venv/bin/dbt seed --profiles-dir ..
  test:
    steps:
      - cd my_project && ../.venv/bin/dbt test --profiles-dir ..

Add custom commands and run them with degen exec <command>.


CLI reference

Command Description
degen init Scaffold a new project interactively
degen status Project health + available commands + UI URLs
degen ui List all web interface URLs
degen install Install dependencies
degen docker-up Start Docker services
degen docker-down Stop Docker services
degen run Execute the pipeline end-to-end
degen stream Start PySpark streaming consumer
degen produce Send 100 synthetic events to Kafka
degen create-topic Create Kafka topic
degen seed Load dbt seed data
degen test Run dbt tests
degen docs Serve dbt documentation
degen notebook Start Jupyter Lab
degen prefect-server Start Prefect backend
degen exec <cmd> Run any custom command from degen.yaml
degen version Print installed version

Supported tools

Phase Tools
Extract Python (pandas + requests)
Transform dbt · PySpark
Store DuckDB · Postgres · ClickHouse
Orchestrate Prefect · Airflow
Serve Grafana · Metabase
Stream Kafka (KRaft, no Zookeeper)

All tools are 100% open source.


Design philosophy

  • Opinionated: clear defaults, no analysis paralysis
  • Complete: every tool comes with Docker, config, UI, and a degen command
  • Practical: generates working code you can run immediately and customize from there
  • Open source only: every dependency is freely available and self-hostable

Documentation

Full hands-on guides at the documentation site:


Development

git clone https://github.com/FB-castro/degen.git
cd degen
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

degen_cli-0.7.3.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

degen_cli-0.7.3-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file degen_cli-0.7.3.tar.gz.

File metadata

  • Download URL: degen_cli-0.7.3.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for degen_cli-0.7.3.tar.gz
Algorithm Hash digest
SHA256 9a8c39f747810f6e2eccd76eff32ccd48921b36a0f445dafbb7aadddb5857f0b
MD5 b93e0fe53a9e73b6cd5b6c169770def0
BLAKE2b-256 fe8200d27c0f74a4893269429b1639c922e9d1ed51c99d220d0e496a19f26c3a

See more details on using hashes here.

File details

Details for the file degen_cli-0.7.3-py3-none-any.whl.

File metadata

  • Download URL: degen_cli-0.7.3-py3-none-any.whl
  • Upload date:
  • Size: 28.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for degen_cli-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fc6f701d1256144f281b176cadd1cee0586d79e6b2139604d73e4421249bc607
MD5 1348f6758134d60d103089f27d1a5e6d
BLAKE2b-256 5e7e292322b24d484dae8ebe9afffbed4d78432a9e2e81ec90a84c8683a3df5b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page