Skip to content

AndrewNeudegg/delta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Delta

build FOSSA Status codecov Go Report Card coverage LOC

An easy to understand and pluggable eventing system.

Overview

Delta is a run anywhere binary that allows you to easily dictate the flow of events in your system. To achieve this delta uses configuration files to specify where events come from, what should happen to them during processing, and where they should be sent.

The specific configuration recipe that you will need will be a combination of the available ingredients with some additions and some removals. For some inspiration, take a look in the ./recipes directory.

To get the latest binaries head over to the releases page or pull the docker image docker run -it andrewneudegg/delta.

Table of Contents

TL;DR (Example Recipes)

HTTP Server

applicationSettings: {}
pipeline:
  # This first pipeline generates and emits http events.
  - id: pipelines/fipfo
    config:
      input:
        - id: utilities/generators/v1
          config:
            interval: 10s
            numberEvents: 10000
            numberCollections: 1
      output:
        - id: http/v1
          config:
            targetAddress: http://localhost:8080

  # This second pipeline consumes those events and writes to stdout.
  - id: pipelines/fipfo
    config:
      input:
        - id: http/v1
          config:
            listenAddress: :8080
            maxBodySize: 1000000 # 1mb
      output:
        - id: utilities/performance/v1
          config:
            sampleWindow: 60s
          nodes:
            - id: utilities/console/v1

Encryption

applicationSettings: {}
pipeline:
  - id: pipelines/fipfo
    config:
      input:
        # The crypto resource wraps the generator resource.
        - id: utilities/crypto/v1
          config:
            mode: encrypt
            password: iddX0DQKGMl7LszqdDKUL6aFVvMGAtwd
          nodes:
            - id: utilities/generators/v1
              config:
                interval: 1s
                numberEvents: 1
                numberCollections: 1
      output:
        # Decrypt the events before writing the output to console.
        - id: utilities/crypto/v1
          config:
            mode: decrypt
            password: iddX0DQKGMl7LszqdDKUL6aFVvMGAtwd
          nodes:
            - id: utilities/console/v1

Performance

applicationSettings: {}
pipeline:
  - id: pipelines/fipfo
    config:
      input:
        # Wrap a resource with a performance measuring resource.
        - id: utilities/performance/v1
          config:
            sampleWindow: 10s
          nodes:
            - id: utilities/generators/v1
              config:
                interval: 1s
                numberEvents: 1000
                numberCollections: 1000
      output:
        - id: utilities/console/v1

License

MIT LICENSE

FOSSA Status

About

An easy to understand and pluggable eventing system.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages