APIs are an abstraction, all abstractions are leaky: Managing what you leak is key to a good API

Modern software is built over the network with systems hooked-up either privately within the internal enterprise eco-system or with a trusted partner or via a public channel Traditional system integration (ESB) engineers working within project directives would have delivered interfaces for system to system or partner to system integration while working closely with the consumingContinue reading “APIs are an abstraction, all abstractions are leaky: Managing what you leak is key to a good API”

Balancing between Zippy and Consistent APIs: Caching the right way

What is a cache? A cache is, in my definition, a store of some data. This data could be the actual copy or a facsimile of some data stored somewhere else and held for a duration A caching solution implementation hold this information in memory (volatile) or offload to a persistent store. When not holdingContinue reading “Balancing between Zippy and Consistent APIs: Caching the right way”

The difference between Open APIs and an Open API Specification

RESTful APIs can be internal (your company’s only) or public facing (Twitter). Thus internal APIs are called “Private APIs” and open to the public APIs are called “Open APIs” Now, while building an API accelerator for our clients I was asked by a well meaning colleague if this was an Open API; the intent wasContinue reading “The difference between Open APIs and an Open API Specification”

Choosing the right tool for Stateful orchestration: Embedded Process Engines vs Serverless Step Functions

Just based on recent experience, I am going to put this out there – AWS Step Functions are great for technical state machines which move from one-activity to another but not really designed for stateful process orchestration and definitely not for implementing SAGA Serverless Step Functions from AWS or BPMN Engines? When building microservices, theContinue reading “Choosing the right tool for Stateful orchestration: Embedded Process Engines vs Serverless Step Functions”

Identifying and Computing hidden complexity within your distributed systems: Integration Entropy is like Molasses

Hello! This one is going to be short and less formal a post. I want to get these questions out there before they eluded me and then come back later to this post (or another) and answer some of these I have been thinking about how we are putting out more integrated solutions now thanContinue reading “Identifying and Computing hidden complexity within your distributed systems: Integration Entropy is like Molasses”

How to pull a reverse-Conway to deliver Products vs Projects: Domain Centric Product Teams

Modern software engineering is oriented towards building networked distributed features for a highly connected and web savvy customer base in varying contexts. Traditional team structures within the enterprise have evolved from technical SME cliques as engineers who “Ate lunch together wrote Software together” Good product strategy requires thinking about product features are built by engineeringContinue reading “How to pull a reverse-Conway to deliver Products vs Projects: Domain Centric Product Teams”

Coupling across context boundaries: The API anti-pattern hurting your user experience

APIs can be used to query information or command changes in system of record. Even the most efficient & fast real-time web service still struggles with having to wait for an “ack” (acknowledgement) leading to coupling between the invoker & provider. If this happens within a cohesive business function then the coupling is necessary, howeverContinue reading “Coupling across context boundaries: The API anti-pattern hurting your user experience”

Observations in building Domain oriented services: How to think about building the right service for your enterprise

APIs are the abstractions over technical services. Good APIs mirror strategic thinking in an organisation and lead to better customer experience by enabling high-degree of connectivity via secure mechanisms Too much focus is on writing protocols & semantics with the desire to design good APIs and too little on business objectives. Not enough questions areContinue reading “Observations in building Domain oriented services: How to think about building the right service for your enterprise”

A Pandemic, Open APIs and Citizen Science: Its 2020 baby!

Human societies have been hit by pandemics through the ages and relied on the central governing authorities to manage the crisis and disseminate information. I believe this time around with COVID-19, our societies have access to more information from our governments because we have the internet If this pandemic is an evolutionary challenge, then ourContinue reading “A Pandemic, Open APIs and Citizen Science: Its 2020 baby!”

Microservices for orchestration: How to apply the stateful process adapter pattern

What are stateful microservices? Microservices holding state while performing some longer-than-normal execution time type tasks. They have the following characteristics They have an API to start a new instance and an API to read the current state of a given instance They orchestrate a bunch of actions that may be part of a single end-to-endContinue reading “Microservices for orchestration: How to apply the stateful process adapter pattern”