What’s your API’s Cachiness Factor?

Published Originally on Apigee

“Cachiness factor” is the degree to which your API design supports the caching of responses. Low cachiness means that a relatively higher than optimal number of requests is forwarded to the back end for retrieving data; a high cachiness factor means that the number of requests serviced through the cache layer is reduced and optimized.

Every time a request is sent to the API provider endpoint, the provider incurs the cost of servicing the request. Investing in a good caching mechanism reduces the number of requests that hit the endpoint, leading to a faster response time, lower servicing costs and saved bandwidth. Resources can then be spent on servicing requests that otherwise would have had to compete with cacheable requests.

Cachiness in an API design refers to understanding how a piece of retrieved data can be reused to serve other API requests. Such an understanding can be transformed into a set of actions that store the retrieved copy of the data in an optimal form for reuse.This coupled with insights from API usage analytics can provide direct benefits in terms of app performance and operational costs.

An API proxy can be designed to do a number of things when a request arrives:

Determine the quality or fidelity of the data requested by the app or end user

This information can then be used to
– Transform the API request to retrieve the data from the endpoint data store at the highest possible fidelity and breadth
– Save the retrieved data in the proxy cache
– Extract the appropriate fidelity and breadth (determined by the original request) and send as the response to the app/end user

For example, if the request is for weather patterns for a city, the system can potentially map the response to a response for all zipcodes in that city and store it accordingly in the cache.

Pre-fetch based on temporal and spatial locality
Predict based on usage patterns what the next request is likely to be and pre-fetch this data from the endpoint for storing in the cache.

For example, given a request for browsing a list of plasma TVs on sale at a retailer, it might make sense to cache the entire response set and serve subsequent requests for more data (e.g. the next set of TVs) from the cache.

Pre-fetch based on similarity
Use the idea of similarity in data sets to predict the next request and retrieve the data for storing at the proxy cache.

For example, for the scenario in which our user requests a list of TVs from one manufacturer, it might make sense to pre-fetch a list of TVs from another manufacturer with a similar product line and store this information in the cache.

Parameters-based selection
If your API supports “select” on your data through parameters, another option to optimize the cachiness of your API is to retrieve the entire data set (within certain bounds) from the backend, store it in your cache, and return only the appropriate data set for the request. Similarly, filtering of data can be performed at the proxy as opposed to the end point, increasing the cachiness factor for the API.

Using Data Analysis to improve cachiness

You can also use data analysis techniques to understand request patterns for your data and use this information to pre-fetch or over-fetch data from the endpoint to increase the cachiness factor of your API.

Caching Diffs
Another possible technique is building a mechanism where updated data is automatically sent from the end point data store to the cache as new updates are generated in the backend. At the cache level, instead of expiring the entire data set, the part of the data set that is least likely to be relevant is automatically expired and the new updated “diff” is appended to the cache data set.

The technique that will work for an API will vary from API to API. You might need to experiment with various techniques to identify the one that makes sense for your scenario and API.

Advertisements

3 Signs That Your Partner Program Is Going Belly Up

Published Originally on Entrepreneur.com

While launching partner programs can offer many benefits to businesses, if not set up correctly, they can also spell disaster.

For those a little confused about what exactly a partner program entails, it is basically a formal program and process operated and managed by a business with the goal to attract, engage and retain other partners. For example, Google offers an advertising service to publishers and advertisers. The ultimate goal of these programs is to increase revenue generated from these partners. In addition to the services offered to partners (i.e. advertising platform), a partner program includes trainings, tools, support, documentation, help and strategic services to empower partners to succeed.

For a program to be considered a success, there should be a strong partner membership, robust usage of the services offered and large stream of revenue generated per partner.

If your partner program is struggling to stand on its legs, you may be making one these three following mistakes:

1. Your return on investment is low or not being measured.

Without clear metrics and goals, most partner projects end up getting defunded as the return on investment (ROI) is simply not there (or not measured) to justify continued investment.

Another symptom of a flawed partner strategy is a misalignment of expectations between senior management/executive sponsors of the platform and the actual implementers. If ROI does not match the expectations of the sponsor, a partner program can be classified as a failure.

To ensure everyone is on the same page when it comes to ROI, determine metrics right off the bat. To do so, companies need to know exactly what metric is important to them and to their partners. For example, the rate at which partners sign up or the time it takes for a partner to go from onboarding to generating revenue might be relevant metrics. Companies need to understand and establish the baseline for these metrics and then measure the efficacy of their program by ensuring the metrics move in the right direction.

Once you have figured out metrics, make sure your platform can deliver. A well-designed service platform makes it easier and cheaper for other teams in the enterprise to go to market with new services, products. If the cost to enhance and expand the platform is not getting smaller for each additional new service, your program might be in trouble.

2. You have built an ineffective service platform.

If your partner program has struggled to attract, retain and enable partners to develop and grow their businesses, it is an ineffective service platform.

To fix this, you have to make your platform sticky, meaning partners cannot succeed without your services. If this isn’t the case, you have a serious problem.

For example, if your partners are signing up to work with both you and your competitors, it might be because they consider you a risky investment. If your partners build only a single one-off application on your platform, your program is probably not on their investment roadmap and growth strategy.

One company that does offer a sticky program is Microsoft’s BizSpark. Initially, startups can build on the platform for free but after a certain time frame – and after a lot of resources have been built on it – Microsoft starts charging. And this creates a huge revenue stream for the company, as what startup is going to want to jump off the BizSpark platform and start over?

3. Your monetization strategy is all wrong.

If you are not making money off of your partner program or generating leverage from its usage, your monetization strategy needs to change.

The key to successful monetization is identifying and expose only products and services that have a high demand from partners. For example, a great tactic may be to survey your potential partners or analyze the needs of your targeted partner persona. This will inform you about the matching subset of services in your arsenal that offer enough value to the partners that they will pay for it.

If you not thinking about your program monetization by investing in marketing, pricing optimization, adoption and growth or performance management of the platform, you are probably stuck with a stagnant partner program with sluggish usage and high churn rate. A successfully monetized partner program requires that it be constantly analyzed and optimized.

If your partner program is an IT initiative and does not have a business team behind it thinking about its ROI, effectiveness and monetization, it will not only struggle to get adopted but also starve for investment dollars from your executive sponsors and revenue dollars from your partners. As these investment dollars dry up, the partner program that runs on top of the platform will be considered a failure and will eventually shrink, get branded as a failure and cease to exist.

The key to success with a partner program strategy begins with carefully selecting what your program offers, convincing and onboarding partners and doing everything and anything to make them successful. Once that is the case, you can monetize the partner program and as you open up new revenue streams for your enterprise, see the program grow, expand and become a line of business.