6.0.x Upgrade Guide
In version 6.0.0, Enrich is refactored to use common-streams libraries under the hood. common-streams is the collection of libraries that contains streaming-related constructs commonly used across many Snowplow streaming applications.
common-streams allows for the adjustment of many different settings. It also provides default values for most of these settings, which are battle-tested. Therefore, we recommend using default values whenever it is possible. You can find more information about defaults in configuration reference.
Also, we took this opportunity to make a few breaking changes. Here are the changes:
Config Field Changes
In version 6.0.0, some of the config fields are renamed or moved to a different section. Here are these changes:
incomplete
stream config field is renamed tofailed
.acceptInvalid
andexitOnJsCompileError
fields underfeatureFlags
section are moved under thevalidation
section.experimental.metadata
section is moved to the root level.In enrich-kafka,
output.good.headers
field is renamed tooutput.good.attributes
.In enrich-kafka,
blobStorage.azureStorage.accounts
section is moved to theblobClients.accounts
.
Feature Deprecations
Output
pii
stream is removed as in our experience it is not used. There will no longer be an option to writepii_transformation
events to an extra output stream.Remote adapters are removed. This was another feature with little to no usage that allowed Enrich to support custom payloads (which would be sent to a configured URL for translation into the expected format). In practice, most of this can be already achieved with Iglu Webhooks.
Reading events from files and writing events to files is no longer supported. This has never been a viable option for production setups.
In enrich-kinesis, passing enrichment configs to the application via DynamoDB is no longer possible.
In enrich-kinesis, it is no longer possible to send KCL metrics to Cloudwatch.
New metrics
Existing metrics will continue to be emitted. Three new metrics are added:
failed
: Same value as theincomplete
metric, for transition. The goal is to removeincomplete
metric and to be consistent with the naming of streams/topics in configuratione2e_latency_millis
: Same value as thelatency
metric, for transition. The goal is to removelatency
metric so that the naming is consistent across applicationslatency_millis
: Delay between the input record getting written to the stream and Enrich starting to process it