The Expressions extension

You can use the svc_expr extension to replace complicated service properties with minimalistic Erlang expressions. You can define these expressions on a service or operation level and use variables, constants and states.

Note: See Erlang expressions documentation on the syntax of expressions.

The Expressions extension makes the following patterns possible:

Codec operations
Operations that use minimal markup to send reply sets comprising flag fields.
Constant operations
Operations that output constant values for other operations to use.
Function operations
Operations that contain a function mapping the input values to output values.
Metadata, such as the owner of a mix, the name of a user or a mix component, can be extracted and used in a mix.
Static bindings in services
Erlang functions defined as service properties that can be referenced by any operation on that service.
Stateful services
Services with states, where state values are persisted in the service instance.
Services as databases
Services that contain Erlang terms, such as lists, maps or list of maps, specified as a state variable that operations can reference or update.
Notify triggers
Notify operations that are triggered and fired based on state changes or specific patterns.
Note: Solicit operations on an Expression service are not supported at the moment.