-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate enriched event against atomic schema before emitting #517
Comments
I believe it should be configurable and be on by default. Fingerprint enrichment kind of enrichment.
I have very light preference towards Enrichment Failure. Enrichment is a more downstream stage and technically should have more details about the payload, so easier to inspect and recover. The enrichment could be called something like |
I think it would just remove the trimming, but we still would have to validate them and also generate a bad row |
Maybe we could make the event parser more strict in the analytics sdk, and then we get the bad row automatically in all loaders. |
As I see it this should not be an enrichment, but a required step of the enrich job, as enrich should not emit events that are not valid according to Ultimately the plan is to use For the bad row type, I think that the check should be run twice:
|
Oversized events are not allowed at all. So this is no longer an enrichment but part of |
If an event is not valid against If In case
When we'll know that all our customers don't have any invalid enriched events any more, we'll remove the feature flags and it will be impossible to emit invalid enriched events. |
Events emitted by enrich should conform to the atomic event schema. However, currently Enrich can emit events whose fields exceed the maximum allowed string length. There should be an enrichment that converts events to failed events if they violate the protocol.
Outstanding questions:
Should the bad row be a Schema Violation or an Enrichment Failure?
Should it be configurably on/off or enforced on?
This change will remove the need for loaders to have special handling of long fields, e.g. here
The text was updated successfully, but these errors were encountered: