enrich
enrich copied to clipboard
Common: explore validating the graph for each incoming event
Currently we validate the types within an event, and we enforce that certain fields in our legacy Tracker Protocol are correctly set, but we don't validate the event semantics as a whole.
To give some examples:
- An iOS screen view lacking a geolocation context is a valid event
- A PagerDuty event consisting of a single entity ("incident_raised") is a valid event
- An event sent by a Snowplow Tracker without a verb is an invalid event
- An ecommerce order without any line items is an invalid event
Relevant writing from Snowplow:
- http://snowplowanalytics.com/blog/2013/08/12/towards-universal-event-analytics-building-an-event-grammar/
- http://snowplowanalytics.com/blog/2014/03/11/building-an-event-grammar-understanding-context/
- http://snowplowanalytics.com/blog/2015/01/18/modeling-events-through-entity-snapshotting/
This looks interesting: http://www.knewton.com/tech/blog/2012/02/graphlint-creating-a-domain-specific-language-for-graph-validation/