Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions develop-docs/sdk/philosophy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ sidebar_order: 2

This document sets some general guidance for how to approach SDK development at Sentry. It should aid both internal and external developers to understand what motivations go into the design of the SDKs and why we're deciding in certain ways.

## Trust is #1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this at #1


Sentry’s mission is to “Enable developers to ship with confidence” and their journey always starts with our SDKs. Above everything else, we need to make sure that our customers can rely on the stability of our SDKs because they depend on them. We are committed to having the most stable SDKs on the market and will own up to our mistakes with transparency and clarity.

## Dependencies Cost

Dependencies come with a cost and that cost is high. Every dependency we use increases the surface area of the SDK and add more licensing, maintenance and security concerns. We understand that dependencies are necessary for supporting integrations, but dependencies must never be required for the base line functionality of an SDK. Obviously every rule also has exceptions and on some platforms we won't be able to work without a base level of dependencies. A good example is Python where we require an external library for HTTP requests to safely send HTTP requests.
Expand Down Expand Up @@ -61,7 +65,3 @@ Being correct is important but even more important is doing the right thing. Yes
## Write less code

The role of an SDK is to instrument the user's application, collect context around the event types we want to capture, and send event data with useful context to Sentry. We should avoid extensive business logic within the SDK that transforms this data as it can get complex, hard to maintain and makes permanent changes to the wire format we send events. We should aim to have data collected by the SDK be as raw as possible. We have more flexibility and control on the server to manipulate the data more effectively.

## Trust is #1

Sentry’s mission is to “Enable developers to ship with confidence” and their journey always starts with our SDKs. Above everything else, we need to make sure that our customers can rely on the stability of our SDKs because they depend on them. We are committed to having the most stable SDKs on the market and will own up to our mistakes with transparency and clarity.
Loading