Blacksmith for
self-hosted ETL

Extract, Transform, and Load any kind of data across systems with Go, "the language of the Cloud".

Low-code data engineering.

Consistent ETL with Go API

Extract(*Toolkit, *http.Request) (*source.Event, error) {

  // ...


The Blacksmith Go API exposes all the methods to Extract, Transform, and Load all of your data, in a consistent way across sources and destinations.

Discover Go API

Powerful REST API Enterprise Edition

$ curl --request GET \
  --url 'https://example.com/admin/api/store/jobs' \
  -d events.sources_in=cms \
  -d events.sources_in=crm \
  -d jobs.destinations_in=warehouse \
  -d jobs.actions_in=register \
  -d jobs.status_in=discarded \
  -d offset=0 -d limit=100

The REST API exposes all the information of your data platform, such as events, jobs, and database migrations. The powerful filtering system allows to make complex queries to better understand your data processing.

Discover REST API

Built-in dashboard Enterprise Edition

Blacksmith Dashboard
The Blacksmith Dashboard enables organizations to have a complete view of their data flows.

A unique developer experience.

Pluggable logger

Blacksmith comes with a structured and pluggable logger so you can better understand how to fix your data processing, directly in the tool of your choice, such as the Elastic Stack.

Universal error handling

Blacksmith provides a error handling package designed to work for any kind of error, regardless its origin. This reduces human errors and improve production experience.

Migration management Enterprise Edition

Versioning and migrating database schema is difficult, especially if there is more than one engineer working on the code base. Organizations can run and version database migrations smoothly with no conflicts across teams.

$ blacksmith migrations rollback \
  --version 20200930071321 \
  --scope "destination:sqlike(snowflake)" \
  --scope "destination:sqlike(mypostgres)"
Learn more about migrations

Distributed semaphore Enterprise Edition

Blacksmith applications can be deployed in distributed and high-available environments. By using a distributed lock mechanism, strong data consistency and stronger fault-tolerance across nodes is ensured.

WARN Failed to run CRON task:
  Key already in use, skipping

ETL is only one of the data
engineering components.

ETL with Go

Extract, Transform, and Load any kind of data across systems with Go, "the language of the Cloud".

TLT with SQL

Transform & Load data across databases with a Pythonistic approach applied to SQL.

Databases migrations

Version, run, rollback, and discard migrations for one or for multiple SQL databases.

Data engineering with Blacksmith

Data engineering
delivered at your scale

Blacksmith comes in two Editions to give you the flexibility to operate reliable data engineering solutions at your scale.