The challenge isn't unlinking accounts in the database, that's just a simple copy command. The challenge is in all the metadata that is used for account A (Facebook), and account B (IG) that can no longer share any downstream metadata.
So when you have to split the two apart, it's likely a hard legal requirement that there's no way account A can know anything about account B anymore. This means, countless metrics and logs and whatever has to be thrown away. So I imagine, there's lots of auditing of systems and every single property that is stored somewhere was scrutinized in long meetings.
Less an engineering burden than a policy and legal burden.
I have a feeling a lot of HN devs overvalue the value of old data... probably because they have adblockers and dont know what ads they are targeted for. Youtube's algorithm seems to forget my interests after a year (or less), I often have totally new feeds than I did 6 months ago. When I got back into music production and also watched some airplane crash videos my entire feed became music + "dark stories" related content bringing non-stop music gear + engineering related education sites. Almost all ads I see on my phone via Google properties are related to the current thing I care about.
Beyond biographic details which are 99% disconnected from my old individual instagram/fb data (FB can just buy some correlation between email/phone/IP from my credit card or private postage company or whatever) they probably only profile IRL off the last 1-2yrs of your browsing behaviour in most cases.
The classic privacy invading ads usecase is a woman who is pregnant suddenly getting ads for kid stuff before other people they know they are pregnant. They probably won't be getting those ads a year later. At most they are now labelled as potential mother in some macro profile, but for day-to-day targetting it's all about the current thing she's looking at online.
I'm not defending this stuff and macro details matter for privacy at the nation-state and higher level, but my general point is that it's a living machine, constantly adapting with a short timeframe of data to maximize utility, not one that cares much about what you googled a few yrs ago 99% of the time.
The compliance burden is proportional to the complexity of the architecture. You could have vast quantities of highly invasive personal data written to a monolithic RDBMS, and it would be simple matter of following foreign key relationships. Or you could have a very minimal set of entities & transactions actually collected from the customer via the edge, but propagated through so many microservices, queues, logs, warehouses, pipelines, and derived tables that it's infeasible to comprehensively trace all the scraps. The latter is more typical of a consumer internet company AFAICT.
Going through something the same, can tell you the people process and collaboration across teams (engineering, warehouse, legal and front end/backend) is the complexity as it takes time and then all downstream events are not synching in same paradigm.
Really requires a huge effort to pull together the right people and get fast feedback loops to stop inertia.
So when you have to split the two apart, it's likely a hard legal requirement that there's no way account A can know anything about account B anymore. This means, countless metrics and logs and whatever has to be thrown away. So I imagine, there's lots of auditing of systems and every single property that is stored somewhere was scrutinized in long meetings.
Less an engineering burden than a policy and legal burden.