We recently wrote about the interest we’re seeing in connected applications that are built on Snowflake. Connected applications separate code and data such that the app provider creates and maintains the application code, while their customers manage their own data and provide their data platform for processing the application’s data.
Some of our partners choose the connected application model because it has benefits for both customers and application providers. Customers love that they maintain control of their data, and SaaS providers benefit with better margins and improved go-to-market alignment with Snowflake. For more on connected applications, see Powered by Snowflake: Building a Connected Application for Growth and Scale.
Even though application providers are excited about connected applications, the traditional “managed application” model offers important advantages as well. The managed model is chosen by application providers because it enables them to deliver a fully managed service, allows flexibility in design and deployment as well as flexibility in their target customer. It also simplifies the onboarding process and the billing model.
It’s important to understand the tradeoffs between the different models, with the knowledge that the models are not mutually exclusive. We expect many partners to implement both models, even if they start with just one of them.
So, what factors should you consider when choosing your approach to building applications? While each use case is unique and you should weigh each factor based on your needs, we’ll review the factors that typically favor one model over the other to help you select the approach that works best for you.
Factors that favor a connected app model
Would your business benefit from joint selling to Snowflake customers?
If you plan to market your application to Snowflake customers, you should consider implementing the connected app model because it can better align your marketing and sales efforts with Snowflake’s go-to-market strategy. Snowflake sales reps are always looking for new use cases and workloads that can provide customer value. Because connected apps deliver great benefits to their customers and increase utilization of their Snowflake account, this model enables strong collaboration with Snowflake sales.
Are you looking to improve product margins or lower your cost?
If you want to improve product margins or lower your costs, the connected model may be more advantageous because Snowflake consumption—which sometimes accounts for a significant share of the cost of goods sold for partners—would happen on the customer’s Snowflake account, not your own. While total cost to the customer may vary depending on the use case, your cost as the provider would typically be lower.
Is the data of a sensitive nature?
If your application processes sensitive data, such as personal identifiable information (PII) or protected health information (PHI), or data that needs to comply with data residency regulations, a connected app model may be a better fit because in those cases your customers may need to keep the data under their control. Even if the customer doesn’t require that the data remain under their control, implementing a connected model may reduce friction in the sales cycle, with fewer approvals required.
Is the customer concerned about vendor lock-in?
If you have customers or prospects who are concerned about being able to easily switch to another application, a connected app model can be a good choice. Because you’re not taking control of the customer’s data, you can prevent potential vendor lock-in objections—and differentiate yourself from your competition.
Are you looking to support multiple data platforms?
Implementing the connected app model does not limit your application to Snowflake customers only. When you build a connected app, you can add connectors for multiple data platforms so your application can connect to whichever platform your customer uses.
Factors that favor a managed app model
There are times when a managed app model offers important advantages. Here are several questions to ask before deciding on your implementation.
Does your application target consumers or very large numbers of customers?
If your application targets consumers, the managed app model would be better since the connected model applies only to customers who have an existing Snowflake account.
Similarly, if you target thousands of customers, implementing a connected model where your application must connect to each of your customers’ Snowflake accounts may be too operationally burdensome.
Would your application benefit from a multi-tenant Snowflake implementation?
Snowflake has three multi-tenancy models: multi-tenant tables (MTT), object per tenant (OPT), and application per tenant (APT), which are more fully described in Design Patterns for Multi-Tenant Applications on Snowflake. If you plan to implement an MTT or OPT design pattern, you would need to store your customers’ data in your own managed Snowflake instance and therefore you would need to use the managed app model. Implementing an OPT or MTT solution would also be more cost effective, and operationally simpler, than implementing the APT model required by connected apps. In fact, the APT tenancy design pattern requires you to update many objects across each customer, which may increase operational burden.
Would you prefer to offer a fully managed service, with increased revenue?
If you want to offer your customers a fully managed service and you want to capture the revenue associated with Snowflake consumption (even if this may lower margins), the managed model can be a good choice. Some of your customers may prefer a fully managed service, perhaps because they don’t have the support of an IT organization to manage their data or create accounts and credentials required by your application. Similarly, your customers may prefer more predictable pricing from you, rather than paying Snowflake separately for your app’s consumption.
In addition, by managing all infrastructure, you control all operations and technology choices. For example, you can pick warehouse sizes and suspend rules based on your application needs and experience. You can also select the cloud provider and regions of your choice.
Do you analyze or leverage data across customers?
If you analyze data across customers to provide application capabilities, such as building generic models that all your customers can leverage, the managed model would likely work best. Since you store and control all data, your applications can more easily query across customers as needed.
What about implementing both models?
The connected app and managed app models are complementary and not mutually exclusive. If you choose to support both models, you could deploy one or the other depending on the customer. For example, you can deploy the connected app model for customers who have (or can open) a Snowflake account, while using the managed app model for non-Snowflake customers. This approach enables all the benefits of connected applications when marketing with Snowflake customers, while increasing your addressable market. Successful Powered by Snowflake partners such as Panther and Hunters.AI support both models.
While we expect the connected app model to be increasingly popular because of the cost and flexibility benefits for both customers and application providers, the managed app model is still a viable option for certain situations. Developers should be aware of the trade-offs of each model and consider implementing both models, when beneficial, to address more use cases. Join the hundreds of software companies already building in the Data Cloud and apply to become a Powered by Snowflake partner.