enrich icon indicating copy to clipboard operation
enrich copied to clipboard

Common: explore validating the graph for each incoming event

Open chuwy opened this issue 4 years ago • 2 comments

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/

chuwy avatar Jun 19 '20 16:06 chuwy