Skip to content

GetStream/pusher-chatkit-migration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

Pusher Chatkit Migration

Guide on how to Migrate Pusher Chatkit to Stream's Chat API Pusher has decided to shutdown their chat API by April 23rd. This gives their customers 30 days to pull of a complicated migration.

If you need help be sure to contact support@getstream.io

Migration roadmap

  • March 29th, Pusher added export support & Stream import support for the Pusher format. So it's now easy to download your export from Pusher and get it up and running on Stream the next day. (running an import typically takes us 1 business day)
  • March 26th, we received an example export from Pusher. Our team is adding support for this export format in Stream's import systems
  • Engineering teams from Pusher and Stream are currently collaborating to create an easy way to migrate from Pusher to Stream

Step 1 - Pusher Chatkit Export

  1. Download your Chatkit export by contacting Pusher Customer Support.
  2. Create an account on getstream.io
  3. Email support@getstream.io with your Pusher export to get an import started. This typically takes 1 business day. At the moment it might take a bit more time since all Pusher customers need to migrate. That's why we recommend doing this as the first step. (note that we can run imports for you even if you're not yet on a paid account.)

Step 2 - Stream Chat Tutorial

Once your Chatkit Export has been successfully imported into to the Stream platform you're ready to start building your app. Follow one of our tutorials below to get started.

Most of the integration with Chat is typically done on the frontend. Typically only token generation is done server side. SDKs are available for PHP, Python, Go, Ruby, Java, JS and Dart.

Step 3 - Integrate Stream's chat

You'll want to make sure your chat solution works. We've seen customers integrate in as little as 2 days. Though the complexity of this integration really depends on how many platforms you're supporting and how complicated your chat is.

Differences between Stream & Pusher

Stream supports all the features you're used to from Pusher. The biggest engineering/conceptual differences are:

  • Pusher has the concept of private and public rooms. Stream has channels. There are 5 built-in types of channels. The "messaging" channel type is similar to the private room. The "livestream" channel type is similar to the public room. You can also create your own channel types. The channel types allow you to configure permissions (IE you need to be a member of a channel in order to post messages). The channel type also allows you to enable/disable features such as typing indicators etc. Channel Type Docs
  • Authorization/Tokens. Stream uses token based authentication. When the user registers or logins your backend will generate a token. This token gives the client side integration access to the chat for that user. Pusher uses a authorization URL based approach. Token Generation
  • Cursors. ChatKit cursors are supported by Stream. On Stream Chat we refer to them as the read state for a user. Global unread counts (total unread messages/total unread channels) across all channels are returned when establishing a new websocket connection. we also provide unread counts by channel (Room). use this to show a read indicator next to messages. All SDKs support this out of the box.

Product Differences

  • Stream powers chat and feeds for over 500 million end users. We believe in building products to last and you can feel confident relying on our APIs. On enterprise deals we also have a code escrow clause in place to ensure you never end up in a situation like we're seeing right now with Pusher.
  • Frontend components: Our SDKs for iOS, Android, Flutter, React and React Native provide both low level chat events as well as fully featured UI components. This allows you to build chat in days instead of months. (which is important since you have 30 days for this migration)
  • API uptime, Stream's API has near 100% uptime. On enterprise plans we offer a 99.999% uptime SLA
  • Reactions, Threads and Rich URL previews are supported out of the box
  • Unread counts are available at a per channel as well as per member level
  • Stream is GDPR and HIPAA compliant. There are convenient endpoints to integrate GDPR requirements in your app. GDPR docs
  • Typing indicator events work in simillar way. users are able to susbcribe to typing.start and typing.stop events
  • Pusher room limit is set to 500. Stream doesn't have a channel level limit. If you want to have a channel with a million members you can do that.

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •