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, and gathering the results of conditional flows
- iterating over data collections
- 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