blacksmith

package module
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

README

Blacksmith

Blacksmith is a low-code platform offering a complete and consistent approach for self-hosted data engineering solutions. Blacksmith allows software engineers to write low-code ETL using the Go language. It also allows data engineers to write templated SQL for TLT and database migrations on top of one or multiple databases.

Any team that is building — or think about building — such a platform knows the tremendous amount of work needed to properly accomplish this mission. Think of Blacksmith as the central piece of your data engineering workflow, leading you to save months of customized and professional work.

Data engineering with Blacksmith

By leveraging Blacksmith, organizations benefit a single source of truth for all their data with a unique developer experience.

Production-ready modules

Blacksmith modules

Product offerings

Blacksmith is not an open-source software. This repository only holds the public Go APIs, allowing organizations to build reliable data engineering solutions on top of Blacksmith using Go and SQL. Blacksmith itself is built and distributed as a CLI and as a Docker image.

Blacksmith is available in two Editions:

  • Blacksmith Standard Edition addresses the technical complexity of data engineering. It is and will always be free. This Edition focuses on building ETLT platforms with Go and SQL for better data quality and stronger data reliability across systems.
  • Blacksmith Enterprise Edition addresses the complexity of collaboration and governance across multi-team and multi-scope data solutions. This Edition adds advanced features for the enterprises, such as migrations management, distributed semaphore, and a built-in dashboard.

Blacksmith Dashboard

Professional services

Along consulting and training, we provide different product offerings as well as different levels of support.

License

Repository licensed under the Apache License, Version 2.0.

By downloading, installing, and using Blacksmith, you agree to the Blacksmith Terms and Conditions.

Documentation

Overview

Package blacksmith is the package to create applications on top of Blacksmith.

Blacksmith is a low-code platform offering a complete and consistent approach for self-managed data engineering. Blacksmith allows software engineers to write low-code ETL using the Go language. It also allows data engineers to write templated SQL for TLT and database migrations on top of one or multiple databases.

Any team that is building — or think about building — a data engineering platform knows the tremendous amount of work needed to properly accomplish this mission. Think of Blacksmith as the central piece of your data engineering workflow, leading you to save months of customized and professional work.

A new application can be generated using the Blacksmith CLI:

$ blacksmith generate application --name <name> [--path <path>]

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type License added in v0.14.0

type License struct {

	// Key is the subscription license key. This information can also be set using
	// the environment variable `BLACKSMITH_LICENSE_KEY`
	Key string `json:"-"`

	// Token is the subscription license token. This information can also be set
	// using the environment variable `BLACKSMITH_LICENSE_TOKEN`.
	Token string `json:"-"`
}

License holds the license details for using Blacksmith Enterprise Edition.

type Options

type Options struct {

	// Logger allows you to use a logrus Logger across all Blacksmith adapters and
	// the application built on top of it.
	Logger *logrus.Logger `json:"-"`

	// Supervisor is the options passed to use the supervisor adapter.
	// The supervisor is optional.
	Supervisor *supervisor.Options `json:"supervisor"`

	// Wanderer is the options passed to use the wanderer adapter.
	// The wanderer is optional.
	Wanderer *wanderer.Options `json:"wanderer"`

	// Store is the options passed to use the store adapter.
	Store *store.Options `json:"store"`

	// PubSub is the options passed to use the pubsub adapter.
	// The pusub is optional.
	PubSub *pubsub.Options `json:"pubsub"`

	// Gateway is the options passed to use the gateway service.
	Gateway *service.Options `json:"gateway"`

	// Scheduler is the options passed to use the scheduler service.
	Scheduler *service.Options `json:"scheduler"`

	// Sources is a slice of Blacksmith sources.
	Sources []source.Source `json:"-"`

	// Destinations is a slice of Blacksmith destinations.
	Destinations []destination.Destination `json:"-"`

	// License holds the license details for using Blacksmith Enterprise Edition.
	// This is not necessary for using the Standard Edition.
	License *License `json:"-"`
}

Options is the options a user can pass to create a new application.

Directories

Path Synopsis
adapter
pubsub
Package pubsub provides the development kit for working with Publish / Subscribe mechanism between the gateway and scheduler services.
Package pubsub provides the development kit for working with Publish / Subscribe mechanism between the gateway and scheduler services.
store
Package store provides the development kit for working with a database-as-a-queue, so the jobs queue can be persisted in a datastore.
Package store provides the development kit for working with a database-as-a-queue, so the jobs queue can be persisted in a datastore.
supervisor
Package supervisor provides the development kit for running Blacksmith applications in a distributed environment.
Package supervisor provides the development kit for running Blacksmith applications in a distributed environment.
wanderer
Package wanderer provides the development kit for working with database migrations.
Package wanderer provides the development kit for working with database migrations.
Package destination provides the development kit for working with third-party services that will receive events from Blacksmith.
Package destination provides the development kit for working with third-party services that will receive events from Blacksmith.
Package flow is a middleman between sources and destinations.
Package flow is a middleman between sources and destinations.
helper
errors
Package errors provides the error interface used by Blacksmith and the adapters.
Package errors provides the error interface used by Blacksmith and the adapters.
logger
Package logger contains tools such as defaults and hooks for working with logrus (github.com/sirupsen/logrus) correctly inside Blacksmith.
Package logger contains tools such as defaults and hooks for working with logrus (github.com/sirupsen/logrus) correctly inside Blacksmith.
rest
Package rest provides utilities shared across the gateway and scheduler adapters to build REST APIs.
Package rest provides utilities shared across the gateway and scheduler adapters to build REST APIs.
gateway
Package gateway provides the development kit for exposing a service receiving incoming events from registered triggers.
Package gateway provides the development kit for exposing a service receiving incoming events from registered triggers.
scheduler
Package scheduler provides the development kit for working with a scheduler that receives events from the gateway and pubsub packages and, used in tandem with the store package, is in charge of the reliability of the event delivery to destinations.
Package scheduler provides the development kit for working with a scheduler that receives events from the gateway and pubsub packages and, used in tandem with the store package, is in charge of the reliability of the event delivery to destinations.
Package source provides the development kit for extracting data from cloud services, databases, or any kind of application able to send data or push notifications.
Package source provides the development kit for extracting data from cloud services, databases, or any kind of application able to send data or push notifications.
Package version provides the version details of Blacksmith alongside the Go version used to run the application.
Package version provides the version details of Blacksmith alongside the Go version used to run the application.
Package warehouse lets a Blacksmith source or destination be considered as a data warehouse.
Package warehouse lets a Blacksmith source or destination be considered as a data warehouse.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL