Monday, April 5, 2021

API Strategy Series: Expanding the Potential User Base

This article focuses on a strategy for maximizing the potential user base by reducing the barrier to entry and the complexity of API integration.  If more users can derive value from a service, then the more valuable the service. 

Where is Opportunity

The user base for APIs are naturally limited because of the cost of integration. API integration is costly for a three reasons.

1. Specialized skills are required to create the integration
2. Specialized skills are required to support and maintain the integration
3. Creating the Integration is Complex and Costly

Typically the client bears the burden of integration development cost. In some cases the providers takes on the burden of development cost and provides out-the-box integrations. In either case, typically software developers create the integration. You then usually have a mixture of operator and programmer (devops) to support and maintain the integration. This leads to costly solutions because the skills above are highly specialized.  

The integrations created are often complex. This can often lead to issues with support and maintenance.

The Importance of Simpler Integrations

Pulling in any behavior that may normally live in the integration, into the control point eliminates the additional code and complexity for that behavior from the integration.

Pulling in all the behavior in the integration, except for the core business logic eliminates all the code and complexity from the integration, except for the core business logic.  Put another way, the integration is as simple as possible.

Any reduction in complexity may translate to cost savings although not always on a 1 for 1 basis.  However, it is generally true to say the simpler the solution the less expensive it is to create and maintain.

The Threshold

So simpler is better.  However there is a threshold of simplicity whose importance cannot be overstated.  

The threshold where a full blown software engineer or devops resource is not needed for implementation or maintenance.  Below this threshold the service become a force multiplier for an organization. 

Expanding the user base to include the broader technical population of the company that fall short of develops of software engineer can make a huge difference for many organizations.  Enabling this population means they are all enabled then to solve their own integration needs.  They no longer have to make a business case justifying the cost of the solution.  They don't they have to wait for access to software engineers or devops resources to become available.  They don't need those same resources for maintenance or updates as well.  This also allows for smaller problems to be solved as it is now cost effective to so; and almost every organization has a surprising number of these small needs that would never get met otherwise.

Let me reiterate because it is so important:

  • Solutions can either be inexpensively developed or self developed
  • Self developed solutions are done on-demand, whenever the user has time.
  • Solving smaller problems is now cost effective and possible.

API Design

In order to achieve this democratization threshold, the API design must stay focused on the tooling and use cases appropriate to the broader user base.

The goal is for the user base to be able to self develop and self maintain their integration.  This self-service approach to automation enables more of the organization to take advantage of the service at minimal cost.

One example, targeting a ubiquitous tool like curl as the foundation for service integration.  This would allow for easy to use documentation with many examples.  The users could copy and paste those examples messing to self service development and maintenance of integrations.


API Strategy Series: Control Point aka Transparent Reverse Proxy

 Whenever there is a transparent reverse proxy in from of an API, what is being created is a control point.  This is also sometime described as an intercepting proxy, inline proxy or forced proxy

Why create an API control point?

Each behavior that is pulled into a control point is a behavior the integrator doesn't have to implement.  This means simpler integrations, less cost for the integrators and more usage. 

Simpler Integrations

Pulling in any behavior that may normally live in the integration, into the control point eliminates that additional code and complexity.

Pulling in all the behavior that would be in the integration, except for the core logic eliminates all the code and complexity, except for the core business logic.  Put another way, the integration is as simple as possible.

Simpler integrations are cheaper to implement, cheaper to maintain, easier to understand, and easier to fix.

Integration Cost Reduction

Pulling in any behavior that may normally live in the integration, into the control point eliminates the development and maintenance cost of that additional code.

Pulling in all the behavior that would be in the integration, except for the core logic eliminates all the development and maintenance cost, except for that of the core business logic.  Put another way, the integration is as cost effective as possible.

Downtime Mitigation

Having a control point gives you the opportunity to respond when the upstream service is unresponsive or has known incorrect responses.  That control point response may be as simple as a 504 Gateway Timeout, or it could include cached responses

The API may have availability or load issues, and you may want to provide centralized retry and/or queuing logic within the proxy.  This eliminates the need for multiple implementations of retry and queuing logic on the client side.  It also prevents a bad retry implementation from occurring.

Limits Blast Radius

Many API endpoints don't handle a single bad actor appropriately.  They expect all integration to be well designed and implemented.

Standardizes Programmatic Behavior

 singly implemented in the control point it prevents a different implementation from each integration.

Extensibility Layer

The control point provides a place to extend the system without having to update the backend service. This may be especially important in legacy situations, third party services or programs, or other situations where the availability to the code doesn't exists, or the risk for any modification is high.

Sunday, October 18, 2020

Good Weekend/Bad Weekend

 Getting a cold during these Covid times is challenging.  Not because of the cold, or fear, or even of strangers judging you.  It's because I can't go to my Brazilian Jiu Jitsu gym and roll.  It's one of the few social interactions I have and it's difficult to go without. 

However.  It should be noted that I dislike complaining about this, because it's not that serious.

In a time where people's family member's have died, where they have lost their jobs, and they are struggling through the uncertainty and the doubt; I cannot complain.  I can, but I don't think they are legitimate complaints.  There is not real struggle, there is only mild discomfort.  I am not a single parent who has lost their only means of supporting their family.  I have not lost anyone close to me.  I haven't suffered real tragedy as a result of the pandemic so far and I dislike thinking I am so mentally weak that I cannot deal with minor discomfort.  All that means is I need more discomfort to put my plight in perspective.  Hence more workouts.

So it you think times are tough for you, take stock of what you have.

Shelter, water, food, health (mental and physical), income/work.  Tick them off, and then count yourself as not having problems the same way that many people around the world have problems.

Appreciate what you have while you have it.  Once it's gone, not appreciating it will be a regret.

Friday, September 25, 2020

Upgrading Health Resources @ Home

Current Resources for Health

Coming Up

I spent a day pulling up a ton of old carpet downstairs revealing the concrete below.  This is in preparation for:

  • New flooring - 3/4" 4' x 6' rubber stall mats
  • Sauna kit (from AlmostHeaven)

The Struggle Continues


Surprisingly I'm still making more use of the AirDyne, than of the Concept2.  I am rowing, but really sticking to the 2000M row.  The AirDyne I'm using for warm up as well as the 20/10 or 90/30 HIT programs.

I have lately shifted to more cardio based workouts, but I think I went to far.  I'm making an effort to make sure I have 2 days of weight focused workouts, either with the weight vest, or the slamballs.

I am looking forward to using the sauna, both for helping the warm up, as well as staving off sickness during the Seattle 

Comfort... Complacency

 The older I get the more I think too much comfort leads to indolence and other bad habits. Productive struggle is what we are built for.  To strive and overcome, to get better.  

We have, right now, the ability to take stock of our situation.  To understand where we are, and appreciate what we have, especially compared to others around the world.  To appreciate what we will gain after the current situation is resolved.  And to understand that there will be worse times to come so appreciate the moment.

It is that appreciation that currently drives me forward.  That pushes me up when I fall down, that allows me to strive to get better.  It keeps me from falling into the trap of comfort and complacency.  

I have chosen to view these times as an opportunity to temper myself.  To get better.  To treat this as a productive struggle for myself.

Sunday, August 9, 2020

Painful Diversions

 "You can't save time, you can only find different ways to spend it."

Lately

Thinking and Doing

  • Making an effort to do the difficult things.
  • Working Out
  • BJJ - Inversion Drills & flow
  • Python - Refresh since it's been awhile since I coded

Listening & Noticed

Wednesday, September 18, 2019

Pixelbook: Current Tools and Configuration

If you've seen my previous post on the pixelbook you already know I'm a fan of this product.  I wanted to document how I'm currently using it, apps, and some configuration just to see if it's different later on.

Work

I use this at work when I go to meetings.  It's light, and I can access all the web based services provided by my work (GSuite, Office365, Box.com, Slack, intranet portal) easily and I can access the same content from my office computer, phone or home computer when I need to.
  • Configuration: Chromebook Laptop

Home

At home I use a number of different applications.

API Strategy Series: Expanding the Potential User Base

This article focuses on a strategy for maximizing the potential user base by reducing the barrier to entry and the complexity of API integra...