Assume a website with 250 million active users.

I add a new feature to the website. Once a user visits I want to use a short tutorial to teach them how to use said feature. I only want them to complete the tutorial once (or actively click it away).

What is the smart way to code the verification check for this? How do I track the progress in the database? Having a separate table with like NewTutorial\_completed = 1 for user\_id = 21312315 would just snowball. It also feels intuitively bad to check for every one-time event for every user on every page view.

While writing the question I got one idea, to have a separate event log that is checked periodically for any new action the user need to see or perform. I push events to this log and once they are completed they are removed from the log. No need to store NewTutorial\_completed = 1-type variables this way.

I am sure this is a common problem. I would appreciate any input on what best practice is.