Authentication as a Data Funnel for Isolated Devices
February 1, 2026
338 words
Consumer products want two outcomes: zero-friction entry and continuity after login. The usual tradeoff is simple. If a product forces login upfront, it loses conversion. If it allows anonymity, it loses continuity across devices. The technique here is a simple identity split: device-level IDs first, account-level aggregation later, done on the fly. The point is not to avoid login, but to delay it until it adds value, without losing the data created before authentication.
We faced the same problem in our current venture, an online realtime poker app. We wanted to provide easy access to the site while keeping login seamless and lossless. To solve this, a device creates a local playerID the first time it interacts, this ID can never be changed or transfered and is bound to that browser. That ID is stored as a row in the database and owns its own data and history. Each player row also has a nullable userID, which remains null for anonymous activity.

When a user logs in on a device, that device’s playerID is linked to the userID. If the same user logs in on another device, that second playerID is linked to the same userID. We maintain a one-to-many relationship between userID and playerID, where one userID can be linked to multiple playerIDs, but a playerID can only ever be linked to a single userID at one point of time. The userID acts as a root-level aggregator for all isolated anonymous devices. Before login, each device remains isolated with no cross-device visibility. After login, all devices linked to the same userID are unified under a single view.
This system is idempotent at the identity level and duplication-free at the data level. It does not create new copies of existing data at login time, but aggregates what already exists, resulting in a non-dependent structure. After logout, a device simply becomes isolated again, and the aggregation naturally excludes it because the mapping between playerID and userID no longer applies. The result is a reversible system with zero hard dependency.