A Peek Into The Interstitial Cost Of Microservices

A Peek Into The Interstitial Cost Of Microservices

A Peek Into The Interstitial Cost Of Microservices. Ben Nadel gets a glimpse at the interstitial cost of a microservices architecture, noting the changes in latency when he merges one Go microservice back into this ColdFusion monolith.

On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.

As I've discussed recently, my team at  InVision has been investing time in  merging microservices back into our ColdFusion monolith. And, this week marks yet another successful subsumption of a Go microservice into our CFML juggernaut. What makes this example so interesting to me is that the target microservice was very small in scope; which, in turn, makes it easy to see the performance impact of the merger. And, what I'm seeing is a delta between the self-reported performance of the Go service and the self-reported performance of the ColdFusion service. When the numbers don't quite line up, it gives us a peek into the interstitial cost of a microservices architecture.

All of our services report a StatsD histogram / timing metric as to how long it takes to fulfill requests. Each of these metrics is tagged with the requested route / action so that we can break this internal latency down at the individual route level.

The Go microservice that I merged back into the ColdFusion monolith only exposed two routes. And, these two Go routes mapped directly onto two ColdFusion routes. Which means that if I look at the self-reported latency of the ColdFusion routes - and, more specifically the change in latency before and after the merger - I can see the difference between the "internal" cost of the Go service and the "external" cost of calling that Go service.

To get a broad sense of the latency delta, here are the AVG(p95) latency graphs (averaged across all of our Kubernetes pods) for the two self-reported times in the ColdFusion monolith:

Change in internal latency of two ColdFusion routes after Go service was merged back into the monolith.

coldfusion microservices

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Testing Microservices Applications

In this article, look at different ways to test microservices and how you can have a suitable testing strategy to begin with.

Microservices and Data Management - DZone Microservices

This article describes the nature of microservices applications, contrasts them with monolithic apps, and talk about microservices in data management.

Microservices and Data Management - DZone Microservices

This article describes the nature of microservices applications, contrasts them with monolithic apps, and talk about microservices in data management.

Microservices and Data Management - DZone Microservices

This article describes the nature of microservices applications, contrasts them with monolithic apps, and talk about microservices in data management.

The Service Mesh in the Microservices World - DZone Microservices

In this article, take a look at the service mesh in the microservices world. The software industry has come a long journey and throughout this journey, Software Architecture has evolved a lot. Starting with 1-tier (Single-node), 2-tier (Client/ Server), 3-tier, and Distributed are some of the Software Architectural patterns we saw in this journey.