Product and engineering teams spend too much time re-inventing the wheel to support pricing and packaging in applications. That’s why core to our product are the tools that developers need so that they never have to think about billing in product development again. With Schematic, engineering teams can decouple billing tool logic from their codebase entirely and treat pricing and packaging just as they would feature delivery, with simple flag checks.
We started Schematic with Go and Node support, because that’s what our product is built on. Today, we’re announcing additional support for Python and C#.
The new SDKs mirror our existing SDKs, including affordances for local caching and offline testing.
Each of our SDKs is strongly typed, so they’re optimized for autocompletion in code editors and will throw compile errors if required fields are not specified or non-existent fields are referenced. You can get started with each SDK using the links below:
All of our client libraries are public on Github if you want to go even deeper.
You should expect access to all basic functionality with each SDK, and both Python and C# have built-in support for local caching and offline testing.
We’ll use Python in examples below to demonstrate.
Local caching is really useful given the main operation via the API is flag evaluation for features within your application. Configuring it via our SDKs reduces network request volume and decreases latency.
When you import the Schematic client, you can configure the local cache by specifying the max size of the cache (in terms of number of entries) and the max age of the cache (in milliseconds).
Whenever you evaluate a flag in your application, we will attempt to retrieve flag values from the cache before performing a network request. As new values are calculated within Schematic, those will asynchronously update when the TTL expires.
Additionally, you may specify default flag values, which will be used if there is a service interruption or if the client is running in offline mode.
Alternatively, you can disable the cache functionality entirely if you’d like and bring your own.
If your product development process includes offline testing, you can configure the Schematic API so that it does not fire off network requests by specifying the offline option and defining default values.
There’s a lot more functionality baked into the Python and C# libraries, and we’re really excited to support those communities moving forward.
Our current SDKs support a wide variety of pricing and packaging contexts, but notably we’ve received many requests for reduced latency in support of high performance use cases (e.g. API rate limiting). In our next SDK releases, we’ll be adding support for rule streaming and client-side evaluation to better support these use cases. Additionally, you can expect more language support coming soon.