typhoon

module
v0.1.16 Latest Latest
Warning

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

Go to latest
Published: May 21, 2024 License: Apache-2.0

README

typhoon

Github Action Go Reference Go Report Card Taylor Swift Volkswagen License

An event bridge for applications and services buil on an event mesh with a control plane.

Overview

Typhoon is built on top of NATS.io and Knative Eventing. It provides a control plane for managing event sources, triggers, and targets. It also provides an API for managing the control plane.

flowchart TB

subgraph controlPlane [Control Plane]
  subgraph api[API]
    subgraph apiAccounting[Accounting]
    end
  end
end

subgraph "Knative Eventing"
  subgraph triggers[Triggers]
    subgraph sources[Sources]
    end
    subgraph transformers[Transformers]
    end
    subgraph targets[Targets]
    end
  end
end

triggers--Communicates via-->eventMesh[Event Mesh]
apiAccounting--Stores data-->externalDatabase[External Database]
apiAccounting--Provides authentication-->eventMesh[Event Mesh]
controlPlane-->ssoProvider[SSO Provider]

sources-->transformers
transformers-->targets

subgraph eventMesh[Event Mesh]
  subgraph NATS
  end
end

subgraph ssoProvider[SSO Provider]
end

subgraph externalDatabase[External Database]
  subgraph PostgreSQL
  end
end

Helm

Helm can be used to install Typhoon to your Kubernetes cluster.

helm repo add typhoon https://zeiss.github.io/typhoon
helm repo update

Install Typhoon to your cluster in a typhoon namespace.

helm install typhoon typhoon/typhoon --create-namespace --namespace typhoon

Development

You can use minikube to run a local Kubernetes cluster.

minikube start

You need to install Serving and Eventing for Knative.

License

Apache 2.0

Directories

Path Synopsis
cmd
api
web
internal
pkg
apis
Package apis provides primitives to interact with the openapi HTTP API.
Package apis provides primitives to interact with the openapi HTTP API.
apis/common/v1alpha1
Package v1alpha1 contains interfaces and types common to all API groups.
Package v1alpha1 contains interfaces and types common to all API groups.
apis/extensions/v1alpha1
Package v1alpha1 contains API Schema definitions for the extensions/v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the extensions/v1alpha1 API group.
apis/flow/v1alpha1
Package v1alpha1 contains API Schema definitions for the flow/v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the flow/v1alpha1 API group.
apis/routing/v1alpha1
Package v1alpha1 contains API Schema definitions for the routing/v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the routing/v1alpha1 API group.
apis/sources/v1alpha1
Package v1alpha1 contains API Schema definitions for the sources/v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the sources/v1alpha1 API group.
apis/targets/v1alpha1
Package v1alpha1 contains API Schema definitions for the targets/v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the targets/v1alpha1 API group.
client/generated/clientset/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/generated/clientset/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/generated/clientset/internalclientset/typed/extensions/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/generated/clientset/internalclientset/typed/extensions/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/generated/clientset/internalclientset/typed/flow/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/generated/clientset/internalclientset/typed/flow/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/generated/clientset/internalclientset/typed/routing/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/generated/clientset/internalclientset/typed/routing/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/generated/clientset/internalclientset/typed/sources/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/generated/clientset/internalclientset/typed/sources/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/generated/clientset/internalclientset/typed/targets/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/generated/clientset/internalclientset/typed/targets/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
metrics
Package metrics contains interfaces for reporting OpenCensus stats to a metrics backend, such as Prometheus.
Package metrics contains interfaces for reporting OpenCensus stats to a metrics backend, such as Prometheus.
reconciler
Package common contains reconciliation helpers shared between target reconcilers.
Package common contains reconciliation helpers shared between target reconcilers.
reconciler/event
Package event contains functions for generating Kubernetes API events.
Package event contains functions for generating Kubernetes API events.
reconciler/resource
Package resource contains helpers to generate Kubernetes API objects.
Package resource contains helpers to generate Kubernetes API objects.
reconciler/skip
Package skip allows a Context to carry the intention to skip parts of the code execution.
Package skip allows a Context to carry the intention to skip parts of the code execution.
routing/adapter/common/controller
Package controller contains helpers shared between controllers embedded in routing adapters.
Package controller contains helpers shared between controllers embedded in routing adapters.
routing/adapter/common/env
Package env allows propagating runtime configurations via the environment.
Package env allows propagating runtime configurations via the environment.
sources/adapter/common
Package common contains various helpers for adapters.
Package common contains various helpers for adapters.
sources/adapter/common/controller
Package controller contains helpers shared between controllers embedded in source adapters.
Package controller contains helpers shared between controllers embedded in source adapters.
sources/adapter/common/env
Package env allows propagating runtime configurations via the environment.
Package env allows propagating runtime configurations via the environment.
sources/adapter/common/health
Package health contains helpers to enable HTTP health checking.
Package health contains helpers to enable HTTP health checking.
sources/secret
Package secret contains utilities for consuming secret values from various data sources.
Package secret contains utilities for consuming secret values from various data sources.
status
Package status contains helpers to observe the status of Kubernetes objects.
Package status contains helpers to observe the status of Kubernetes objects.
targets/adapter/cloudevents
Package cloudevents provides a CloudEvents library focused on target component requirements and on how responses should be composed.
Package cloudevents provides a CloudEvents library focused on target component requirements and on how responses should be composed.

Jump to

Keyboard shortcuts

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