Activity Feeds V3 is in closed alpha — do not use it in production (just yet).

V2 to V3 Migration

Our team is working on an automated V2 to V3 migration system. On this page you can read what changed in the API:

V3 changes

Backend vs Client side

One of the largest changes is that in V2 we recommended a backend integration. V3 is built with both front-end and backend integrations in mind.

Users

User data on feeds 3.0 is shared with our video and chat products.

Feeds

Feeds need to be created before being used. So in the past you could add an activity to a feed and the feed would be automatically created.

In V3 you need to create the feed before adding activities to it. Feeds also have an owner which influences how client side permissions work.

SDKs

V3 comes with new SDKs so you want to use the modern SDKs.

Foreign ID vs ID

In v2 you needed to use a foreign id to indicate the uniqueness of activities and map it your system. In V3 of the API this has been replaced by making it possible to specify an ID when creating an activity

// old
feed.addActivity({ foreign_id: "update:123" });

// new
feed.addActivity({ id: "update:123" });

Activity structure

// old
activity = {
  actor: "john",
  verb: "post",
  text: "day in NYC",
  image_url: "my image",
  to: ["user:a", "user:b"],
};
// new
activity = {
  user: "john",
  type: "post",
  text: "day in NYC",
  attachments: [{ type: "image", image_url: "" }],
  feeds: ["user:a", "user:b"],
};

1000 Feed pagination limit

V2 of feeds has a limitation that you can only read up to 1000 activities in a feed. V3 has several changes related to this

  • You can change a feed’s activity selectors to include certain feeds or queries of activities. This means you can include popular content or content close to the user (geolocation).
  • It’s possible to query activities

Aggregated, Notification and Flat feeds

Aggregated and notification feeds are no longer a separate feed type in V3. Aggregation and notification are now just settings on the feed. This makes it easier to switch between how your feeds work.

Migration steps

Integrate the new SDKs

Start by integrating the new SDKs and verifying that your app works well.

Enabling the V2 to V3 sync

On your V2 app enable the sync to V3 features. This will ensure that new data on your app is synced. Before this will work you need to ensure that the relevant feed groups and settings are present in V3.

You want to make sure that all new data is syncing correctly and displayed well in your app.

Export

stream-import login
stream-import export --api_key hello targetfile.json.gz
stream-import status --api_key helo

Import

See the docs in the import system for running an import

Clean up

You now have all data from V2 available in V3. Our team will clean up the unused V2 app after 6 months of no activity

© Getstream.io, Inc. All Rights Reserved.