RudderStack is an open source Customer Data Infrastructure (CDI) that allows you to collect your customer event data from a variety of sources, and route it securely to your preferred data warehouse, analytics tools, and dozens of other destinations.
The underlying principle is quite simple - RudderStack receives the event data from a variety of Sources, and routes this data to the Destinations.
There are two modes in which you can route your event data from your website or mobile app to the desired destinations, through RudderStack:
In this mode, the SDK sends the event data directly to RudderStack. RudderStack then transforms this data and routes it to the desired destination. This transformation is done in the RudderStack backend, using the Transformer module.
Some of the other destinations that currently support only cloud mode are Amplitude, Kochava, Mailchimp, Mixpanel, Salesforce, and Zendesk. Our Data Warehouse Integrations also support only cloud mode.
Another way you can send your events to the preferred destinations is through using the client-specific libraries on your website or mobile app. These libraries allow RudderStack to use the data you collect on your device to call the destination APIs, without sending it to the RudderStack first.
Similar to the example given above, let's assume you want to send your event data from your source mobile apps to Firebase through RudderStack's mobile SDK (Android, iOS, or Unity, depending on your requirement). You can start by adding a source and a Firebase destination in the RudderStack dashboard.
If you enable the
Native SDK option on the RudderStack dashboard, the RudderStack SDK will download the Firebase SDK, transform the events and will send them to Firebase for analytics.
Some of our destinations support sending event data via both the cloud and device mode. These are Google Analytics, HubSpot, Intercom, Kissmetrics, Branch, Braze, Customer.io, and Facebook App Events. You can choose to integrate these destinations with RudderStack via cloud mode or device mode, depending on your requirement.
Consider using Cloud Mode if you wish to benefit from RudderStack's custom transformation capabilities.
If you are planning to work with destinations that record information directly on your users' devices, you can opt for Device Mode. There is a possibility that these destinations might not function correctly if they are not loaded directly on the device.
As you can see, there are some clear benefits as well as trade-offs when using cloud mode (sending the data to your destinations through RudderStack) and device mode (sending the data directly to the destinations in parallel to RudderStack).
The easiest way to check if a destination supports Cloud mode, Device mode, or both is to go through the individual destination's documentation. We explicitly mention the supported connection modes for every destination in the Getting Started section of each guide. A sample example is as shown:
To learn more about the connection modes supported by RudderStack, or if you come across any issues while using them with any of our SDKs, feel free to contact us or start a conversation on our Discord channel. We will be happy to help you.