Recognising Software Monoliths: 7 key types

A monolith in software architecture a term used to describe some service that is large, complex and shared across different business functionalities. Changing any aspect of this can be daunting not just from an engineering standpoint but from a testing, delivery and release standpoint as well As teams look to decompose monolithic software into domain…More

3 Key Asynchronous Communication Patterns: Ways to talk offline

When integrating systems we often end-up writing asynchronous messaging interfaces for mostly system-to-system communications. This conversation technique is great because it does not require the sender and receiver to stay connected to each other in a session at the same instance in time, is non-blocking and you can make it reliable through message persistence, incremental…More

Domain Service Architecture: The good, bad and ugly

Domain services implement core logic for a business domain and are a relied upon by experience and consumer services. Domain services can be self contained and store the business logic and state or rely on an external provider system (translating from a “raw system format” to a “canonical” domain format) In this post we look…More

Why Experience APIs are key to taking your business public

As organisations look to take their offerings to the world outside for specific customers, partners or general public and grow their business, they must balance the risk of opening the door to internal mission-critical systems vs value provided. These offerings also must deliver the right experience, requiring an abstraction over the internal organisation services to…More

From Project to Product Teams: Implementing the Inverse Conway Move for better Software

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 system oriented teams to deliver these features in a loose and ad-hoc fashion and dis-bands the team after a project is…More

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 our…More

De-mystifying the Enterprise Application Integration (EAI) landscape: Actors, terminology, cadence and protocols

Any form of Enterprise Application Integration (EAI) [1] work for data synchronization,  digital transformation or customer self-service web implementation involves communication between the service providers and service consumers. A web of connections grows over time between systems, facilitated by tools specialising in “system-integration”; this article covers how the clients, services and integration tools communicate and…More

Tackling complexity: Using Process maps to improve visibility of integrated system features

“Entropy always increases “– second law of thermodynamics Enterprise systems are similar to isolated physical systems, where the entropy or hidden-information always increases. As the business grows, our technology footprint grows as new systems are implemented, new products and cross-functional features are imagined and an amazing network of integrations emerge Knowing how information flows and…More

Raspberry Pi Setup – Part II: IoT API Platform

Intro This is the second part in a series of posts on setting up a Raspberry Pi to fully utilize the Software & Hardware functionality of this platform to build interesting internet of things (IOT) applications. Part-I is here https://techiecook.wordpress.com/2016/10/10/raspberry-pi-ssh-headless-access-from-mac-and-installing-node-processing/ … this covered the following: Enable SSH service on the Pi Connect to Pi without a display or router –…More

Complex Form Evaluation with Drools

Introduction Complex business rules are best implemented using a ‘Rules Engine’. Drools is an open source Business Rules Management Product. See here   In this blog we will cover a few basics of using the Drools rule engine, specifically using a Domain Specific Language (DSL) which is a language that is more user focused. The…More

Why is this not an API contract?

Why is this … my Swagger UI, generated from code not a contract? It describes my service, therefore it must be a Service Provider Contract. No?  This was a common theme for a few of our clients with mobile/web teams as consumers of enterprise services.  Service providers generated contracts, and would sometimes create a contract…More

Microservices with Docker and Spring Boot

This guide is for someone interesting in quickly building a micro-service using the Spring Boot framework. Works great if you have prior JAX-RS / Jersey experience Step-by-step guide Add the steps involved: Create a Maven Project Final Structure Pom ( Attached here ) Include Spring Boot Dependencies in your pom Parent Project <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>…More