Link Search Menu Expand Document

The FireFly node

Table of contents

  1. FireFly node runtimes
  2. Pluggable microservices architecture

FireFly node runtimes

A FireFly node is a collection of multiple microservice runtimes with a single unified HTTPS/Websocket API (exposed by the Core).

The FireFly node

The minimum set of runtimes is as follows:

  • FireFly Core - the API and event server for your multi-party applications
  • Blockchain node - the decentralized ledger technology establishing a shared source of truth
  • Blockchain interface - transaction submission and event streams for your chosen protocol
  • Shared storage node - a network-wide peer-to-peer store of shared data
  • Data exchange - for private member to member communications of messages and files

Check out the FireFly CLI to get a a multi-party system running on your laptop in minutes.

Pluggable microservices architecture

The runtimes are pluggable, allowing technology choice, and extensibility.

  • FireFly Core
    • Orchestration engine - manages lifecycle of assets and data
    • Hosts the API and UI - applications connect here
    • Maintains private storage
    • Written in Go
  • Connectors
    • Runtimes that bridge the core to multi-party infrastructure
    • Can be written in any language Go, Java, Node.js etc.
    • Can be stateful or stateless, depending on requirements
    • Can contain significant function, such as managed file transfer, or e2e encryption
  • Infrastructure runtimes
    • Can be local runtimes, or cloud services
    • Blockchain nodes - Fabric, Ethereum, Corda etc.
    • Database servers - PostreSQL, SQLite, CouchDB etc.
    • Private messaging - Kafka, RabbitMQ, ActiveMQ, Mosquitto etc.
    • Private blob storage - Kubernetes PVCs, AWS S3, Azure File etc.
    • Public blob storage - IPFS, etc.
    • … and more - token bridges, trusted compute engines, etc.