<p class="wp-block-paragraph">Leaky abstractions can be bad, especially in the context of APIs we expose to the world. Here are some thoughts on how to be less leaky and achieve more self-service with the APIs you build</p> <p class="wp-block-paragraph">Modern software is built over the network with systems hooked-up either privately within the internal enterprise eco-system or…More
Monthly Archives: August 2020
Common Service Caching Patterns
<p class="wp-block-paragraph">Caché implies to hide something. In a technology context this is “some service hides some data for a period of time (minutes to years)”</p> <p class="wp-block-paragraph">A cache is a bit of information we stash away to better serve the clients using our service. Some of the questions cache implementers face are: </p> <ul class="wp-block-list">…More
The difference between Open APIs and an Open API Specification
<p class="wp-block-paragraph">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”</p> <p class="wp-block-paragraph">Now, while building an API accelerator for our clients I was asked by a well meaning colleague if this was an Open API; the…More
Choosing the right tool for Stateful orchestration: Embedded Process Engines vs Serverless Step Functions
<p class="wp-block-paragraph">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</p> <p class="wp-block-paragraph"><strong>Serverless Step Functions from AWS or BPMN Engines?</strong></p> <p class="wp-block-paragraph">When…More
Single Entity, Multiple Master: Manage Complexity with Domain Services Integration Pattern
<p class="wp-block-paragraph">We often think of enterprise systems as the master systems for one or more enterprise data entities. We believe the lifecycle of the entity is contained and managed by users in a system in an encapsulated and convenient manner. However, there are scenarios where multiple systems master an entity and this is often because…More
From Project to Product Teams: Implementing the Inverse Conway Move for better Software
<p>Modern software engineering techniques within organisations deliver “distributed features” using agile techniques. These features are distributed across different systems and integrated to provide an end-to-end experience. Traditional project delivery brings in members from different <em>system</em> <em>oriented</em> <em>teams</em> to deliver these features in a loose and ad-hoc fashion and dis-bands the team after a project is…More
Domains, Sub-Domains and Bounded Contexts: Explained with example from industry
<p class="wp-block-paragraph">The Domain Driven Design (DDD) book and community use the language of Domains and Bounded Contexts. Often there is confusion around what is a Domain, Sub-Domain, Bounded Context and how do we tell the difference between one or other when we are in the trenches. </p> <p class="wp-block-paragraph">This confusion can lead to poor design…More
Observations in building Domain oriented services: How to think about building the right service for your enterprise
<p class="wp-block-paragraph"> <p>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</p> <p>Too much focus is on writing protocols & semantics with the desire to design good APIs and too little on business objectives. Not enough…More
A Pandemic, Open APIs and Citizen Science: Its 2020 baby!
<p class="wp-block-paragraph">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</p> <p class="wp-block-paragraph">If this pandemic is an evolutionary challenge,…More