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
- 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.