So cool! Had a weekend tinker a few weeks ago that needed this use case and a quick search didn’t produce any useable light solutions so did it by hand.
One tiny data point for y’all.
Good luck!
Edit: assuming eventually your schema transformation unlocks at least partially and you have at least some flexibility outside the default 11 column approach?
Great to hear from someone who also built this themselves!
As far as flexibility beyond 11 columns: I'd love to know your use case.
We do support additional metadata on each activity with what we call enrichment tables.
Some events are going to need more metadata -- a page view would want to have the actual page, the five UTM parameters, referrer, etc, which is more than the 3 fields of metadata we store on the activity stream.
So we also support creating additional tables to add metadata to each activity. Each row requires a unique activity id and its timestamp and can an unlimited number of additional columns.
We'll then automatically join that table into the activity stream when queries need it.
Conversely, isn’t literally any use case that doesn’t feed your schema something you can’t really support?
Went through your docs and the pre-populated “narratives” or query templates are thoughtful and probably capture a wide load of initial analytics (and will get better), however it’s a pretty narrow solution.
I guess technically if you have 1 table with support tables of metadata you are closer to a traditional relational DB, so maybe this isn’t as restrictive as it seems.
Yeah, that's true, but you'd be surprised by the number of things that can be modeled with an activity stream.
It's one of the more common objections people have as they understand the model, but in practice we've found that it's not an issue. Our CEO loves asking people to describe their hard data questions and then redefine them in terms of the activity stream.
The metadata support tables are actually an exception -- we don't use them frequently in practice.
Thanks for engaging with us. If you ever want to dive deeper into this we're always happy to chat.
One tiny data point for y’all.
Good luck!
Edit: assuming eventually your schema transformation unlocks at least partially and you have at least some flexibility outside the default 11 column approach?