View on GitHub

flownote

FlowNote lets developers create, organize, and reason about event-oriented applications with a simple flow-based language.

The Node Concept

Nodes

Nodes contain Actions and connect to one or more Channels. They receive events from Channels and pass events to Channels.

Actions

Actions

Actions are individual axioms about your business rules represented by JavaScript. Within an action, you can do the following:

If a Node or Milestone has multiple Actions, they will be executed in sequence. Each time an Action is ran, lifecycle information about that information is emitted.

When defining an Action, you have to pass in a function that performs the actual action. This function cannot be an arrow function due to limitations in how .call() works. You have to use standard Functions or Promises with Actions.

Milestones

Milestones will execute all scheduled Actions that have been accumulated. Scheduled actions will be executed in the order they have been scheduled. Once those Actions are completed, the Request will have no more Scheduled actions pending. It is HIGHLY recommended to schedule Actions that are related to retrieving or committing information to persistent, remote, and/or non-idempotent services. If you don’t do this, you will experience difficult-to-reverse transactional situations during parallel processing or random order of exeuction during sequential processing. Like Nodes, Milestones also connect to one or more Channels.

FlowNote

This example defines Nodes and the Actions they will execute.

node someNode = action1
node anotherNode = action2, action3
node lastNode = action4, action5, action6

Node, Milestone, and Action names can only be letters, numbers, or periods.

This defines a Flow as a single Node.

flow example(GET /example) = someNode

This defines a Flow as a single Node which leads to a Milestone (*) that executes any accumulated Scheduled Actions.

flow example(GET /example) = someNode*

Examples

Documentation

( Installation | Features | Use Cases | Language | Application | Flow | Nodes | Channels | Contribution Overview | Roadmap | Known Problems )