Glossary

Functions

A function is a single user-configured operation they can run through bem. At the moment, we have four types of functions currently available in our API:

  • route - Supports both stochastic classifications of inputs in addition to deterministic pattern matching for routing to the next transform function call or external endpoint (future)
  • transform - 1:1 transformation of a single input to a single structured output
  • split - 1:N transformation of a single input into multiple structured outputs, with each semantically split component routed to its respective transform function
  • join - N:1 transformation merging multiple inputs into a single output to transform
  • enrich - Post-transform action used to augment transformed data with your own resources managed through bem Collections. You can utilize this to normalize strings to your own unique identifiers, add metadata according via semantic search, map natural language values to your internal catalogs, and much more.
  • payload_shaping - Post-transform action used to map your transformed output to another data structure. Useful for syncing to external services with strict APIs or pivoting your data into flattened objects.

Workflows

A workflow serves as an orchestration layer across functions that can dynamically handle inputs sent through a single entrypoint. Workflows are configured as a graph structure of interrelated functions that describe the control flow and direction of data you'd like processed through bem. You can subscribe and retrieve the events of workflows to simplify state management across functions that need to be run in a sequence, as well as monitor the individual function outputs at every step of a workflow.

Events

An event is the instance of a single function call, regardless of the function type. Subscriptions output events when a function call has completed.

Transformation

A transformation is the output of a transform, analyze, split, or join function. It is the resulting data structure adhering to the outputSchema specified in the transformation's respective function.

View

A view is a mechanism to get insight into the output of transformation functions. Views can include columns, filters, aggregations, and are associated with specific functions from which they query transformation data.