cargo

module
v0.0.0-...-c7b9fe3 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: Apache-2.0

README

Cargo

Blockchain sync for the cult of Cardano

Cargo is a scalable event-based multi-input/multi-output transform system with a focus on syncing the Cardano blockchain and related ecosystem.

Inspiration for this tool comes from CDAP and its simplified data pipelines as code, and by tools like Cardano DB sync and Oura within the Cardano ecosystem.

Design goals

Our primary goal is to create an application which can be used for simple use cases on a local development machine, yet be horizontally scalable at several key points while remaining interoperable with the overall software ecosystem.

This interoperability comes from creating standard data formats for passing events between the various layers so necessary data structure transformations can be applied. For example, an Oura sink could be written for Cargo, which would allow reusing Oura and its filtered data as an input source.

  • Event based architecture
  • DAG based workflow definitions
    • Sharable code
  • Horizontally scalable
  • Configurable inputs (sources)
    • Cardano blockchain (cardano-node)
    • External programs
    • Webhooks
  • Configurable transforms (filters)
    • External programs
    • Can be chained together
  • Built-in transform primitives
    • JOIN, SPLIT
    • Schema alter (internal)
  • Configurable outputs (sinks)
    • AMQP
    • Kafka
    • Database (cardano-db-sync compatible)
    • Webhooks
  • Configurable message bus
    • AMQP
    • Kafka
    • In-memory (single process only)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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