Skip to content
Charles d'Avernas edited this page Apr 15, 2022 · 1 revision

Synapse Logo

  1. What is Synapse?
  2. Why Synapse?
  3. How does Synapse work?

What is Synapse?

Synapse is a vendor-neutral, free, open-source, and community-driven Workflow Management System (WFMS) implementing the Serverless Workflow specification.

Serverless Workflow

CNCF Serverless Workflow defines a vendor-neutral, open-source, and fully community-driven ecosystem for defining and running DSL-based workflows that target the Serverless technology domain.

As a technology agnostic DSL, it allows to describe complex workflows that can be carried accross platforms seeminglessly.

Why Synapse?

  • Vendor-agnostic: though initially created by Neuroglia SRL, the project has been given to the CNCF at its earliest stage
  • Cross-platform: runs natively on Windows, Linux, Mac OSX, Docker and Kubernetes
  • No dependencies: Synapse has NO dependency, aside from the database(s) you choose to use
  • Design Patterns: Synapse has been developped using modern design patterns such as Domain Driven Design (DDD), Command and Query Responsibility Seggregation (CQRS), Repository Pattern, Flux/Redux, etc., which drastically improves both maintainability and performances, and which considerably reduces implementation efforts
  • Very fast: unlike most if not all other runtimes, Synapse isolates a whole instance into a single process, instead of isolating all the activities the workflow is made out of, resulting in considerably faster execution time
  • Application Programing Interfaces (APIs): Synapse exposes both HTTP REST, GRPC and WebSocket (SignalR) APIs to ensure fast, reliable and standardized communications
  • User Interfaces (UIs): Synapse offers both a Dashboard Web Assembly (WASM) Single Page Application (SPA) and a Command Line Interface (CLI) to manage and monitor workflows
  • DSL driven: last but not least, Synapse relies on the awesome and amazingly portable Serverless Workflow DSL, ensuring cross-compatibility with any and all implementations of the specification

How does Synapse work?

How does Synapse work?

  • Users or third party applications interact with Synapse using one of the Management APIs, should it be HTTP REST, GRPC or Websocket. Alternatively, they can delegate the API calls to the CLI or to the Dashboard
  • Commands and queries are handled by the application. When a new workflow instance has been started, the application uses the configured Runtime Host to create an isolated computing unit - known as the worker - for its processing, should it be a process (when running natively), a container (when running on Docker) or a pod (when running on Kubernetes)
  • The worker and the server communicate with each other in real time using the configured Runtime API, should it be GRPC or Websocket.
  • When the workflow instance has been executed, its hosting computing unit is disposed of after collecting all relevent artifacts from it (logs, metrics, ...)
  • Users or third party applications can monitor progress and changes via the Monitoring APIs, or by configuring a sink to which the application will publish Cloud Events