[Beta]{class="badge informative"}
Create dynamic datastream configurations
- The option to define dynamic datastream configurations is currently in Beta and available to a limited number of customers. To receive access to this functionality, contact your ۶Ƶ representative. The documentation and the functionality are subject to change.
By default, the Experience Platform Edge Network sends all the events that reach a datastream to all the Experience Cloud services that you have enabled for your datastreams. This might not always be the ideal workflow for you, depending on your use cases.
Dynamic datastream configurations address this concern through user-configurable sets of rules that you define for each service enabled for your datastream, which dictate what Experience Cloud solution should receive each type of data.
Prerequisites prerequisites
To create a dynamic configuration for your datastream, there are two conditions you must meet:
- You must have created at least one datastream to work with. See the documentation on how to create a datastream for detailed information.
- You must have at least one Experience Cloud service added to your datastream. See the documentation on how to add a service to a datastream for detailed information.
After you have created a datastream and added an Experience Cloud service to it, you can then create a dynamic configuration.
Guardrails guardrails
Dynamic datastream configurations have specific limits and performance constraints to ensure optimal system performance and data processing efficiency. The following guardrails apply when configuring dynamic datastream rules:
Dynamic datastream configurations versus datastream configuration overrides dynamic-versus-overrides
Dynamic datastream configurations and datastream configuration overrides are mutually exclusive functionalities.
This means that you cannot use dynamic datastream configurations along with datastream configuration overrides. You must choose one or the other.
If you enable both dynamic datastream configurations and datastream configuration overrides, the configuration overrides will take precedence and the dynamic datastream configuration rules will be ignored.
Create a dynamic datastream configuration create-dynamic-configuration
After you have created a datastream and added a service to it, follow the steps below to add a dynamic configuration to the service.
-
Go to the Data Collection > Datastreams page and select the datastream that you created.
-
Select the Edit option on the service for which you want to define a dynamic configuration.
-
In the Configure page, select Save and Edit Dynamic Configuration.
-
Select Add Dynamic Configuration.
-
From the Resources panel, drag and drop the items that you want to build your rule with to the right side of the window. You can combine multiple resources to build complex rules.
Use each resource’s options, such as equals, does not equal, exists, and more, to fine tune your rules.
-
In the Configuration section, toggle the services that you want to enable or disable for each rule, depending on whether you want the data to be sent to each service. If you turn the toggle off, the service routing is disabled and no data will be sent to the upstream service.
-
When you are done configuring your rules, select Save.
Rule priority considerations considerations
You can define multiple rules for each dynamic datastream configuration. However, if your data matches the conditions of multiple rules, only the first matching rule in the list is taken into consideration, and all the other matching rules are ignored.
To achieve the desired data routing behavior, pay attention to the order in which you arrange the rules.
To configure the rule order, you can drag and drop the rule windows in the order you want.
Rule eligibility criteria eligibility-criteria
Dynamic datastream configurations must meet specific eligibility criteria to ensure high performance, maintainability, and clarity. Below are the main requirements and best practices for defining rules.
Supported data types supported-data-types
Dynamic datastream configuration rules work with specific data types to ensure optimal performance and reliable data routing. Understanding which data types are supported helps you create effective rules that process your data efficiently.
Supported operators supported-operators
Rules can use the following operators, depending on the data type:
equals
, starts with
, ends with
, contains
, exists
, does not equal
, does not start with
, does not end with
, does not contain
, does not exist
equals
, does not equal
, greater than
, less than
, greater than or equal to
, less than or equal to
, exists
, does not exist
equals true/false
, does not equal true/false
equals
, does not equal
, exists
, does not exist
today
, yesterday
, this month
, this year
, custom date
, in last
, from
, during
, within
, before
, after
, rolling range
, in next
, exists
, does not exist
INCLUDE
, ANY/ALL
(equivalent to AND/OR)Rule structure rule-structure
When creating rules for dynamic datastream configurations, it’s important to understand the structural requirements that ensure optimal performance and system compatibility. The rule structure directly impacts how efficiently your data is processed and routed through the system.
Use flat expressions only. You must define rules as flat logical expressions. Nested logical expressions (using containers or multiple levels of AND/OR) are not supported. If you need complex logic, break it into multiple flat rules.
For example, consider the complex rule shown in the image below.
You can break this rule into the following simpler rules:
Avoid complex rules. Simpler rules ensure faster evaluation and better maintainability.
Best practices best-practices
Following best practices when creating dynamic datastream configuration rules ensures optimal performance, system reliability, and maintainable configurations. These guidelines help you avoid common pitfalls and create efficient rules that work seamlessly with the platform’s architecture.
- Keep rules simple and flat. If you need to express complex logic, use multiple rules instead of nesting.
- Use only supported data types and operators.
- Test your rules for performance. Overly complex or unsupported rules may cause the system to reject them or could impact system performance.