Special Nodes

Special nodes are the glue of Coreograph. They play a crucial but secondary role in every Coreograph application. The primary nodes of an application are those related to cloud services and network communication. They generally represent the crux of the application, its very point and purpose. Data that flows between the primary nodes is routed, manipulated and controlled in various ways by special nodes. Some of the supporting roles that special nodes play:

  • calling one circuit from another and routing data between caller and callee

  • building up collections (lists, sets, maps, vectors) and iterating over their elements

  • packing and unpacking data into tuples, which resemble structures in C or objects in Javascript

  • testing and comparing data

  • conditionally routing data to specialized dataflows and gathering the results of conditional flows

  • converting data between different types

  • converting between internal and external (string) representations of JSON

  • emitting log messages e.g. to CloudWatch

  • operating on primitive data types like numbers, strings and symbols

  • synchronizing and coordinating independent dataflows

  • introducing literal values for use as parameters, initial conditions, verbatim text, and so on

In the sections below we introduce the special nodes by category. These categories correspond to what you will in the editor when selecting a special node for insertion. The special nodes are found under the Special heading in the Add Node tab of the left drawer:

SpecialNodes 1

Expanding the Special heading reveals the categories of special nodes:

SpecialNodes 2