Handling LastSeenAt/LastSeenUrl

LastSeenAt is a value that's constantly updating and as such it seems too expensive and probably not worth it to store that in the event store.

What do people really want

  1. Know where the widget is installed
  2. Know if the widget is installed
  3. Know if the widget has broken (kind of a late indicator)
  4. Know if the widget is installed in multiple places & they aren't paying for that.

Short-term solution

The only use case right now is number 1 (and kind of 2, although not in a very convenient format)

So to maintain this functionality we just store it outside of the event store in Redis. This is ok because this data is also stored in Kafka/S3 in our analytic data and even then it's not that hard to get it back because HTTP requests are constantly flowing into MindFlayer.

Long-term solution: Idea 1

It would be awesome to have reports of a widget being installed on multiple websites and compare that to the webchat_limit (not yet a thing) to let throw up flags in Skyhook to ask people for more money..

This also would be nice to know all the places a config change will affect.

Idea 2

Save "Installed on", a list of unique domains it's installed on.

Also if we were able to scope by domain name that would also help us out.

event-sourcing mindflayer