A flow-based process engine implementation for processing event-driven requests. #golang
Project Flogo is an ultra-light, Go-based open source ecosystem for building event-driven apps. Event-driven, you say? Yup, the notion of triggers and actions are leveraged to process incoming events. An action, a common interface, exposes key capabilities such as application integration, stream processing, etc.
App = Trigger(s) + Actions[&Activities]
Triggers
receive data from external sources.
are managed by a configurable threading model
have a common interface enabling anyone to build a Flogo trigger.
Handlers
dispatch events to actions
Actions
process events in a manner suitable with the implementation
have a common interface enabling opinionated event processing capabilities
Project Flogo Ecosystem
All capabilities within the Flogo Ecosystem have a few things in common, they all process events (in a manner suitable for the specific purpose) and they all implement the action interface exposed by Flogo Core.
Some of the key highlights include:
Ultra-light 20x-50x lighter than Java or Node.js
Event-driven Powerful event-driven programming model based on triggers and actions
Common core a single, common core enables reuse and flexibility across all eventing constructs
Golang based Written entirely in Golang for efficiency
Deployment flexibility Deploy as ultra-lightweight serverless functions, containers or static binaries on IoT edge devices
Native machine learning Purpose built activity for TensorFlow SavedModel inferencing
100% Open Source for your dev & hacking pleasure
Integration Flows Application Integration process engine with conditional branching and a visual development environment
Stream Processing a simple pipeline-based stream processing action with event joining capabilities across multiple triggers & aggregation over time windows
Contextual Decisioning Declarative Rules for Real-time Contextual Decisions
Microgateway Microgateway pattern for conditional, content-based routing, JWT validation, rate limiting, circuit breaking and other common patterns
The concept is simple, an event is just that, an event, how it’s processed is what differs. Flogo Core eases the burden by enabling a common set of functionality, such as:
threading
logging
data type coercion
data mapping
tracing & monitoring hooks
While also exposing a common set of contributions via activities and triggers. For example, all available triggers can be leveraged to dispatch events to any action implementation, that is, flows for application integration, streams for stream processing, rules for contextual rule processing, etc.