Future of PSC (Persons with significant control) bulk data and Stream api?

Questions Related to PSC (Persons with Significant Control):

  1. Future of Bulk Data
    We are planning to set up PSC data in our database. Our current approach involves creating a script to download the bulk data and update our database. However, we are unsure about the future availability of this bulk data. Will it remain accessible, or will it eventually be phased out in favor of the stream API, making the stream API the only option?

  2. Stream API and Database Updates
    After uploading PSC data into our database, how can we correctly update objects coming from the stream API? The stream only provides the company number, so how do we determine which object in our database corresponds to the incoming data for accurate updates? There doesn’t seem to be a clear key in the stream that maps the data to our database objects.

Thank you.

Small addition to my previous post: Currently, the Stream API is handling only two event changes changed and deleted. How about handling a new PSC event like insert? How can this be managed?

On point 1, the bulk data isn’t an alternative to the streaming api. They are supposed to be used together, ie start with the bulk data to populate your database and then keep it up to date with the streaming API.
On point 2, they include a resource_id field on each event which can be used to key the data (or more precisly resource_uri). Eg

  "resource_kind": "company-psc-individual",
  "resource_uri": "/company/15064231/persons-with-significant-control/individual/KbuC7k7T1ZaFP8_Na9jghVRnjfM",
  "resource_id": "KbuC7k7T1ZaFP8_Na9jghVRnjfM",

New items get sent with the changed event type. If you wish to determine whether its new you’ll need to compare with the previous state of your database.
I suggest using an upsert operation to apply each event.