-
Notifications
You must be signed in to change notification settings - Fork 35
Home
Charles d'Avernas edited this page Apr 15, 2022
·
3 revisions
Synapse is a vendor-neutral, free, open-source, and community-driven Workflow Management System (WFMS) implementing the Serverless Workflow specification.
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.
- 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
andKubernetes
- 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
andWebSocket
(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
- Users or third party applications interact with Synapse using one of the Management APIs, should it be
HTTP REST
,GRPC
orWebsocket
. Alternatively, they can delegate the API calls to theCLI
or to theDashboard
- 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
orWebsocket
. - 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