- Start Date: 2023-01-05
- RFC Type: decision
- RFC PR: #48
- RFC Status: approved
This RFC is almost exactly the same as #47.
Right now replay_ids are added to the error/transaction event tags object in the event schema. This isn't ideal as tags should be reserved for user use only.
We'd like to create a context object replay
which for now would contain the singular field replay_id
.
We also want to move this potentially out of the tags columns within clickhouse for errors/txs. The replay_id can be stored as its own column or as a key in contexts.
Replays are linked together with errors and transactions throughout the product, relying on the current tag setup. We want to do this in a non-janky future-proof way.
{
...,
"contexts": {
...,
"replay": {
"replay_id": "<id>"
}
}
}
I suppose we could add the "replay_id" top level to contexts. Not sure what other options there could be.
The new replay_id
column will have type Nullable(UUID)
.
The replay_id
will be added to the existing array columns for contexts.
From what I understand a high cardinality value like replay_id can cause poor performance with the bloom filter index, this may not be ideal.
Regardless of what options we choose, it will require work to be done, and backwards compatibility changes made in places.
- Need a go-ahead on event schema proposal
- Is adding new columns for the replay_id the right path forward?
Going with a new context object {"replay":{"replay_id"}}
on the SDK, and new columns in snuba storage.