Files
nexus/sreweekly/articles/468/07-why-i-m-no-longer-talking-to-architects-about-microservices.html
2026-09-12 17:23:01 +08:00

1295 lines
69 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en" > <![endif]--><!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en" > <![endif]--><!--[if IE 8]> <html class="no-js lt-ie9" lang="en" > <![endif]--><!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]--><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="author" content="Ian Miell">
<meta name="description" content="I'm done talking about microservices: the term is confusing, discussions are abstract, and without organisational change, microservices are pointless">
<meta name="generator" content="HubSpot">
<title>Why I'm No Longer Talking to Architects About Microservices</title>
<link rel="shortcut icon" href="https://blog.container-solutions.com/hubfs/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="/hs/hsstatic/jquery-libs/static-1.1/jquery/jquery-1.7.1.js"></script>
<script>hsjQuery = window['jQuery'];</script>
<meta property="og:description" content="I'm done talking about microservices: the term is confusing, discussions are abstract, and without organisational change, microservices are pointless">
<meta property="og:title" content="Why I'm No Longer Talking to Architects About Microservices">
<meta name="twitter:description" content="I'm done talking about microservices: the term is confusing, discussions are abstract, and without organisational change, microservices are pointless">
<meta name="twitter:title" content="Why I'm No Longer Talking to Architects About Microservices">
<style>
a.cta_button{-moz-box-sizing:content-box !important;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;vertical-align:middle}.hs-breadcrumb-menu{list-style-type:none;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px}.hs-breadcrumb-menu-item{float:left;padding:10px 0px 10px 10px}.hs-breadcrumb-menu-divider:before{content:'›';padding-left:10px}.hs-featured-image-link{border:0}.hs-featured-image{float:right;margin:0 0 20px 20px;max-width:50%}@media (max-width: 568px){.hs-featured-image{float:none;margin:0;width:100%;max-width:100%}}.hs-screen-reader-text{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}
</style>
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/9848497348/1743627661455/module_image--logo.min.css">
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29086683658/1743407238685/template_CS--megamenu.css">
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29104102065/1743627972543/module_CS--Megamenu__helper.min.css">
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29544378357/1743627988045/module_Blog2_Normal_Sidebar_Topic_Post.min.css">
<link rel="stylesheet" href="/hs/hsstatic/AsyncSupport/static-1.501/sass/comments_listing_asset.css">
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29544595978/1743628123051/module_Footer_Social_Icon_CM_copy.min.css">
<!-- Editor Styles -->
<style id="hs_editor_style" type="text/css">
#hs_cos_wrapper_module_15894459824861109 { display: block !important; padding-left: 0px !important }
</style>
<!-- Added by GoogleAnalytics integration -->
<script>
var _hsp = window._hsp = window._hsp || [];
_hsp.push(['addPrivacyConsentListener', function(consent) { if (consent.allowed || (consent.categories && consent.categories.analytics)) {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create','UA-53586058-2','auto');
ga('send','pageview');
}}]);
</script>
<!-- /Added by GoogleAnalytics integration -->
<!-- Added by GoogleAnalytics4 integration -->
<script>
var _hsp = window._hsp = window._hsp || [];
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
var useGoogleConsentModeV2 = true;
var waitForUpdateMillis = 1000;
if (!window._hsGoogleConsentRunOnce) {
window._hsGoogleConsentRunOnce = true;
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'wait_for_update': waitForUpdateMillis
});
if (useGoogleConsentModeV2) {
_hsp.push(['useGoogleConsentModeV2'])
} else {
_hsp.push(['addPrivacyConsentListener', function(consent){
var hasAnalyticsConsent = consent && (consent.allowed || (consent.categories && consent.categories.analytics));
var hasAdsConsent = consent && (consent.allowed || (consent.categories && consent.categories.advertisement));
gtag('consent', 'update', {
'ad_storage': hasAdsConsent ? 'granted' : 'denied',
'analytics_storage': hasAnalyticsConsent ? 'granted' : 'denied',
'ad_user_data': hasAdsConsent ? 'granted' : 'denied',
'ad_personalization': hasAdsConsent ? 'granted' : 'denied'
});
}]);
}
}
gtag('js', new Date());
gtag('set', 'developer_id.dZTQ1Zm', true);
gtag('config', 'G-ML0V60VEZ4');
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-ML0V60VEZ4"></script>
<!-- /Added by GoogleAnalytics4 integration -->
<link rel="amphtml" href="https://blog.container-solutions.com/why-im-no-longer-talking-to-architects-about-microservices?hs_amp=true">
<meta property="og:image" content="https://blog.container-solutions.com/hubfs/Screenshot%202025-03-11%20at%2015.14.16.png">
<meta property="og:image:width" content="694">
<meta property="og:image:height" content="338">
<meta name="twitter:image" content="https://blog.container-solutions.com/hubfs/Screenshot%202025-03-11%20at%2015.14.16.png">
<meta property="og:url" content="https://blog.container-solutions.com/why-im-no-longer-talking-to-architects-about-microservices">
<meta name="twitter:card" content="summary_large_image">
<link rel="canonical" href="https://blog.container-solutions.com/why-im-no-longer-talking-to-architects-about-microservices">
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/Blog-Assets/prismCS.css">
<script type="text/javascript" src="https://blog.container-solutions.com/hubfs/Blog-Assets/prismCS.js"></script>
<script>
Prism.hooks.add("before-highlight", function (env) {
env.code = env.element.innerText;
});
Prism.highlightElement(code);
</script>
<meta property="og:type" content="article">
<link rel="alternate" type="application/rss+xml" href="https://blog.container-solutions.com/rss.xml">
<meta name="twitter:domain" content="blog.container-solutions.com">
<meta name="twitter:site" content="@containersoluti">
<script src="//platform.linkedin.com/in.js" type="text/javascript">
lang: en_US
</script>
<meta http-equiv="content-language" content="en">
<link rel="stylesheet" href="//7052064.fs1.hubspotusercontent-na1.net/hubfs/7052064/hub_generated/template_assets/DEFAULT_ASSET/1783348970918/template_layout.min.css">
<link rel="stylesheet" href="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29544378321/1743407238877/template_360_Design_Style.css">
<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
<script type="text/javascript" src="//cdn2.hubspot.net/hubfs/2558854/infinite_scroll_v1.js?t=1495695879614"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
<script>
var ias = $.ias({
container : '.post-listing',
item: '.post-item',
pagination: '.blog-pagination',
next: '.next-posts-link',
});
setTimeout(function(){
$('.post-listing').masonry({
// options
itemSelector: '.post-item',
columnWidth: '.post-item',
gutter: 1,
resizesContainer: false,
percentPosition: true,
isAnimated: true,
});
}, 300);
ias.on('loaded', function(data, items) {
$('.post-listing').removeData('masonry');
setTimeout(function(){
$('.post-listing').masonry({
// options
itemSelector: '.post-item',
columnWidth: '.post-item',
gutter: 1,
resizesContainer: false,
percentPosition: true,
isAnimated: true,
});
}, 300);
})
ias.extension(new IASSpinnerExtension());
ias.extension(new IASTriggerExtension({offset:0}));
ias.extension(new IASNoneLeftExtension({text: 'There are no more pages left to load.'}));
</script>
</head>
<body class="blog-360-style2 hs-content-id-187168043885 hs-blog-post hs-blog-id-5674137972" style="">
<div class="header-container-wrapper">
<div class="header-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-global_group " style="" data-widget-type="global_group" data-x="0" data-w="12">
<div class="" data-global-widget-path="generated_global_groups/30127606334.html"><div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget line-top-nav center" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_15894459824861109" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15894459824861109_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><div id="topwrappercarla" style="margin-left: 0!important;">
<p>Check out our <strong><a href="https://www.container-solutions.com/services" rel="noopener">Cloud Native Services</a> </strong>and<strong> </strong>book a call with one of our experts today!&nbsp;</p>
</div></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1588876584329219" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-space" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span class="hs-horizontal-spacer"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1588876586294221" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-space" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span class="hs-horizontal-spacer"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell header-grp header-360" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-navigation wrapper equal-height-container" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-6 ">
<div class="row-fluid ">
<div class="span2 widget-span widget-type-custom_widget hidden-phone" style="" data-widget-type="custom_widget" data-x="0" data-w="2">
<div id="hs_cos_wrapper_module_1588861885855449" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-space" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span class="hs-horizontal-spacer"></span></div>
</div><!--end widget-span -->
<div class="span2 widget-span widget-type-custom_widget logo-image vertical-center" style="" data-widget-type="custom_widget" data-x="2" data-w="2">
<div id="hs_cos_wrapper_module_1588861885855450" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><div aria-hidden="true" class="logo-main">
<section class="logo-image">
<span id="hs_cos_wrapper_module_1588861885855450_hs_logo_widget" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_logo" style="" data-hs-cos-general-type="widget" data-hs-cos-type="logo"><a href="http://container-solutions.com" id="hs-link-module_1588861885855450_hs_logo_widget" style="border-width:0px;border:0px;"><img src="https://blog.container-solutions.com/hubfs/CS_blog/logo-main.svg" class="hs-image-widget " height="120" style="height: auto;width:120px;border-width:0px;border:0px;" width="120" alt="Container Solutions" title="Container Solutions"></a></span>
</section>
</div></div>
</div><!--end widget-span -->
<div class="span8 widget-span widget-type-cell mega-custom-menu header-menu vertical-center custom-menu-primary" style="" data-widget-type="cell" data-x="4" data-w="8">
<div class="row-fluid-wrapper row-depth-1 row-number-7 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1588861885855452" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-8 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1588861885855453" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1588861885855453_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"><div id="hs_menu_wrapper_module_1588861885855453_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-horizontal" role="navigation" data-sitemap-name="default" data-menu-id="29112379890" aria-label="Navigation Menu">
<ul role="menu">
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com" role="menuitem">Home</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/services" role="menuitem">Services</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/events" role="menuitem">Events</a></li>
<li class="hs-menu-item hs-menu-depth-1 hs-item-has-children" role="none"><a href="javascript:;" aria-haspopup="true" aria-expanded="false" role="menuitem">Content</a>
<ul role="menu" class="hs-menu-children-wrapper">
<li class="hs-menu-item hs-menu-depth-2" role="none"><a href="https://blog.container-solutions.com" role="menuitem">Blogs</a></li>
</ul></li>
</ul>
</div></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-9 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-menu-1 hidden-phone hidden-tablet" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-drop-1" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-menu hidden-phone" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-3 ">
<div class="row-fluid ">
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="0" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_16299859664272722" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_16299859664272722_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span3 widget-span widget-type-cell center nav-column" style="" data-widget-type="cell" data-x="3" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-3 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-4 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_16299853344462565" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_16299853344462565_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span3 widget-span widget-type-cell center nav-column" style="" data-widget-type="cell" data-x="6" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-5 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-6 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_16299853310642563" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_16299853310642563_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="9" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-7 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-8 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1648341413920261" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1648341413920261_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-menu-2 hidden-phone hidden-tablet" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-drop-2" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell mega-menu hidden-phone" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-3 ">
<div class="row-fluid ">
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="0" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1594821908906860" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1594821908906860_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="3" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-3 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-4 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1594822950655390" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1594822950655390_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="6" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-5 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-6 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1594823562783675" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1594823562783675_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span3 widget-span widget-type-cell nav-column" style="" data-widget-type="cell" data-x="9" data-w="3">
<div class="row-fluid-wrapper row-depth-3 row-number-7 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-3 row-number-8 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1643154843573484" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1643154843573484_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end header -->
</div><!--end header wrapper -->
<div class="body-container-wrapper">
<div class="body-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell wow2-blog-sec" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell wrapper" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span7 widget-span widget-type-cell left-col" style="" data-widget-type="cell" data-x="0" data-w="7">
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_158381964095203" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-blog_content" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<div class="blog-section">
<div class="blog-post-wrapper cell-wrapper">
<div class="blog-section post-blog-section">
<div class="blog-social-share">
<div class="post-social-share">
<ul>
<li>share:</li>
<li><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblog.container-solutions.com%2Fwhy-im-no-longer-talking-to-architects-about-microservices"><i class="fab fa-facebook-f"></i></a></li>
<li><a target="_blank" href="https://www.twitter.com/share?url=https%3A%2F%2Fblog.container-solutions.com%2Fwhy-im-no-longer-talking-to-architects-about-microservices"><i class="fab fa-twitter"></i></a></li>
<li> <a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=https://blog.container-solutions.com/why-im-no-longer-talking-to-architects-about-microservices"><i class="fab fa-linkedin-in"></i></a></li>
<li><a target="_blank" href="#"><i class="fas fa-envelope"></i></a></li>
</ul>
</div>
</div>
<div class="simple-post-wrapper blog-post-wrapper cell-wrapper">
<div class="section post-header">
<div class="hs-featured-image-wrapper default-type">
<a href="https://blog.container-solutions.com/why-im-no-longer-talking-to-architects-about-microservices" title="" class="hs-featured-image-link">
<img src="https://blog.container-solutions.com/hubfs/Screenshot%202025-03-11%20at%2015.14.16.png" alt="" class="hs-featured-image">
</a>
</div>
<p id="hubspot-topic_data">
<a class="topic-link" href="https://blog.container-solutions.com/tag/cloud-native">Cloud native</a>,
<a class="topic-link" href="https://blog.container-solutions.com/tag/microservices">Microservices</a>,
<a class="topic-link" href="https://blog.container-solutions.com/tag/architecture">Architecture</a>
</p>
<h1><span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text">Why I'm No Longer Talking to Architects About Microservices</span></h1>
<div class="row-fluid post-author-sec">
<div id="hubspot-author_data" class="span6 hubspot-editable" data-hubspot-form-id="author_data" data-hubspot-name="Blog Author">
<a class="author-link" href="https://blog.container-solutions.com/author/ian-miell">Ian Miell</a>
<div class="hs-author-avatar"> <img src="https://blog.container-solutions.com/hubfs/ian_miell.jpeg" alt="Ian Miell"> </div>
</div>
<div class="span6 post-read align-right">
<div><span> March 11, 2025</span></div>
<span> 10 minutes Read</span>
</div>
</div>
</div>
<div class="section post-body">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p>It happened again last week. I was at an architecture review meeting when a fellow architect eagerly started another debate about *microservices*. Within minutes, eyes glazed over and we were knee-deep in an absurd discussion about something that should have been a means to an end, but had morphed into the end itself. At that moment, I realized: I’m done. I’ve finally sworn off talking to architects about microservices. Why? Because these conversations usually go nowhere productive.</p>
<!--more--><p>I’ve boiled my frustration down to three problems:</p>
<ol>
<li>No one agrees on what "microservice" means.</li>
<li>Microservices conversations are abstract, with little tie-in to real business goals</li>
<li>Adopting microservices without changing your organisation is pointless.</li>
</ol>
<h2 style="font-size: 24px;"><span style="color: #000000;">Problem One: No One Knows What a Microservice Is</span></h2>
<p>This is the most obvious problem. There’s no formal definition of what a microservice is, so when people talk about them, they often end up talking at cross purposes.</p>
<p>Here are some definitions out there:</p>
<ul style="line-height: 1.5;">
<li aria-level="1">A service with a low number of lines of code:
<ul>
<li style="line-height: 1.5;" aria-level="2">'They are very, very small. I mean 100 lines of code is probably a big service these days.' Fred George, Barcelona Ruby Conference</li>
</ul>
</li>
<li aria-level="1">The<a href="https://aws.amazon.com/executive-insights/content/amazon-two-pizza-team/&nbsp;" rel="noopener" target="_blank"> ‘two-pizza’</a> team
<ul>
<li style="line-height: 1.5;" aria-level="2">Technically not a definition of microservices, but often used as a rule of thumb for the prescribed size of team required for it, and implies that a microservice requires its own team.</li>
</ul>
</li>
<li aria-level="1">Requires only one programmer to build and maintain:
<ul>
<li style="line-height: 1.5;" aria-level="2">'If its more than one programmer to develop &amp; design and maintain it, it’s not a microservice' Fred George, GOTO 2016</li>
</ul>
</li>
<li aria-level="1"><a href="https://www.paloaltonetworks.co.uk/cyberpedia/what-are-microservices#:~:text=Each%20service%20is%20autonomous%20and%20self%2Dcontained%20and%20runs%20a%20unique%20process" rel="noopener" target="_blank">Autonomous, self-contained and unique processes</a>
<ul>
<li aria-level="2">'Each service is autonomous and self-contained and runs a unique process.'&nbsp;</li>
</ul>
</li>
<li aria-level="1">A container/pod
<ul>
<li aria-level="2"><a href="https://ThinkMicroservices.com" rel="noopener" target="_blank">'Each microservice is packaged as a Docker container to enable deployment to a Kubernetes cluster for application orchestration.'</a></li>
</ul>
</li>
<li aria-level="1">A service with its own data store
<ul>
<li aria-level="2">This was my personal rule of thumb for a long time, and is also implied <a href="https://www.paloaltonetworks.co.uk/cyberpedia/what-are-microservices#:~:text=began%20adopting%20this-,architecture,-" rel="noopener">here</a><br><a href="https://www.paloaltonetworks.co.uk/cyberpedia/what-are-microservices#:~:text=began%20adopting%20this-,architecture,-"><span></span></a></li>
</ul>
</li>
<li aria-level="1">‘Independently replaceable and upgradeable’
<ul>
<li aria-level="2"><a href="https://www.youtube.com/watch?v=j2AQ9eTZ3-0" rel="noopener" target="_blank">Ian Cooper</a>, after Yourdon, Edward; Constantine, Larry <em>Structured Design</em>, 1975</li>
</ul>
</li>
<li style="line-height: 1.5;" aria-level="2"><a href="https://www.linkedin.com/posts/tastapod_the-idea-of-microservices-having-or-wanting-activity-7304921317139464192-NOLu/" rel="noopener" target="_blank">A 'little computer' that operates on *a model of* the business concepts that are relevant to its operation.</a>&nbsp; Daniel Terhorst-North</li>
</ul>
<p>While some of these overlap significantly with one another, the differences of emphasis combined with the loose way we discuss them, we end up with the <a href="https://www.peacecorps.gov/educators-and-students/educators/resources/blind-men-and-elephant/story-blind-men-and-elephant/" rel="noopener" target="_blank">"blind men and the elephant"</a> scenario: everyone’s correctly describing something slightly differently, so no-one is ‘wrong’, but we’re certainly not aligned.</p>
<p>(I discussed this confusion about what a microservice is <a href="/reflections-on-amazon-prime-videos-monolith-move#:~:text=isn%E2%80%99t%20a%20monolith%E2%80%99.-,The%20Semantics,-At%20this%20point" rel="noopener" target="_blank">here</a> when talking about Amazon Video’s so-called microservices to monolith move.)</p>
<p>After enough of these debates, I’ve found it simpler to ban the term “microservices” altogether. If a term causes this much confusion, maybe it’s outlived its usefulness.</p>
<p>Instead of arguing about what to call our architecture, we could be talking about concrete challenges, or specific trade-offs: how to deploy new features faster, how to reduce coupling, how to scale parts of the system. In other words, microservices (whatever you decide they are) <em>are not an end in themselves, but a by-product of achieving some other goal</em>.</p>
<h3 style="font-size: 20px;"><span style="color: #434343;">Problem One (b): The Lack of Discipline in Software Terminology</span></h3>
<p style="line-height: 1.5;">This isn’t just a microservices issue: it’s a broader problem in our industry. We throw around big words that sound impressive but mean wildly different things to different people. Consider these terms, and their histories:</p>
<ul>
<li aria-level="1">DevOps
<ul>
<li style="line-height: 1.5;" aria-level="2">Originally a rejection of the standard separation of development and operation teams, it became perfectly normal to talk about separate and centralised ‘DevOps teams’ centred around deployment tooling</li>
</ul>
</li>
<li aria-level="1">Agile
<ul>
<li style="line-height: 1.5;" aria-level="2">Originally a rejection of software methodologies and behaviours popularly associated with waterfall software development and an embracement of dynamic and context-specific methodologies and behaviours, the term became associated with heavily bureaucratised and ritualised behaviours</li>
</ul>
</li>
<li aria-level="1">SRE
<ul>
<li style="line-height: 1.5;" aria-level="2">Originally a discipline introduced by Google to bring software engineering practices to operations, emphasising reliability, automation, and service-level objectives (SLOs), it morphed into a rebranded operations function, usually without the cultural shift towards automation and shared ownership that it originally advocated</li>
</ul>
</li>
<li aria-level="1">Observability
<ul>
<li style="line-height: 1.5;" aria-level="2">Originally a concept from control theory applied to software systems, focusing on the ability to understand internal states from external outputs, it was embraced by modern infrastructure teams to move beyond traditional monitoring. However, as vendors pushed commercial observability solutions, it became increasingly synonymous with expensive dashboards, metrics overload, and tool sprawl, often obscuring rather than clarifying system health</li>
</ul>
</li>
</ul>
<p style="line-height: 1.5;">Each started with a well-defined intent, but over time they’ve been stretched and contorted to mean whatever the speaker wants to advocate or criticise. With such sloppy definitions, is it any wonder our conversations go in circles?</p>
<p>(As an aside, I’d like to give props to GitOps. This term has been relatively stably used, thanks mainly to a clear original definition (now, sadly, gone from the internet along with the term’s creators, Weaveworks) that was not easily perverted for commercial purposes.)</p>
<h2><span style="font-size: 24px; color: #000000;">Problem Two: Microservices Conversations Are Abstract and Unrelated from Business Goals</span></h2>
<p>Closely related to the first problem, discussions about microservices are often detached from any tangible business goals. If you ask "What business problem are we actually solving?" you’re often met with vague responses like:</p>
<ul>
<li style="line-height: 1.5;" aria-level="1">Microservices improve scalability. (Scalability of what? Where is the current bottleneck?)</li>
<li style="line-height: 1.5;" aria-level="1">Microservices make teams more agile. (How? Are deployments slow because of the architecture, or are they slow because of process constraints?)</li>
<li style="line-height: 1.5;" aria-level="1">Microservices allow independent deployments. (Is that actually a requirement for your team, or just a nice-to-have?)</li>
<li style="line-height: 1.5;" aria-level="1">Microservices reduce cognitive load. (For whom? Do they really, or are we just moving complexity around?)</li>
</ul>
<p style="line-height: 1.5;">If you listen closely, many of these conversations about microservices are not actually about architecture, but about wanting to work for a different company, where technology is cutting-edge and problems are theoretically interesting, rather than legacy-ridden and constrained by real-world trade-offs.</p>
<p>The sad reality is that many teams embarking on a microservices migration would be better off staying with a well-structured monolith until their scaling needs genuinely demand a different approach. Sam Newman, author of Building Microservices, frequently warns that most organizations should not start with microservices unless they have a compelling reason.</p>
<p>Again, it would be far better to stop talking about microservices. Start talking about reducing cycle time, improving reliability, and solving concrete business bottlenecks. If breaking up a system into smaller services is the best way to achieve those outcomes, fine, but angels on a pinhead discussions among architects about microservices are not the way to get there.</p>
<h2 style="font-size: 24px;"><span style="color: #000000;">Problem Three: Microservices Without Organizational Change Is Pointless</span></h2>
<p>Another critical consequence of engineers discussing microservices in isolation from the business context is that they more often than not ignore the organisational changes required to make microservices work.</p>
<p style="line-height: 1.5;">Microservices don’t work in a vacuum. They require teams to be structured in a way that supports them. That means:</p>
<ul>
<li style="line-height: 1.5;" aria-level="1">Cross-functional, autonomous teams that own services end-to-end. If teams still depend on centralised bottlenecks (e.g., a single DBA team), microservices won’t deliver the promised benefits</li>
<li style="line-height: 1.5;" aria-level="1">Decentralized decision-making to avoid coordination overhead. If releases still require lengthy approval processes, the independence of services is an illusion</li>
<li style="line-height: 1.5;" aria-level="1">A mature DevOps culture with CI/CD, monitoring, and incident management practices that can handle the complexity of distributed systems</li>
</ul>
<p>If your organisation isn’t willing to make these changes, microservices will only make things worse. Adding technical complexity while keeping all the old organizational inefficiencies. In short, tech should follow business needs, not the other way around.</p>
<p>Most people that discuss microservices either don’t appreciate this, or don’t appreciate how hard this is. Changing your organisational structure is <em>far</em> harder than changing your software architecture when your business is over a trivial size. This is why small startups can ‘pivot’, and change their software architecture so quickly: their organisation structure can be changed as soon as everyone agrees on the architectural changes.</p>
<h2 style="font-size: 24px;"><span style="color: #000000;">The Next Time Someone Mentions Microservices…</span></h2>
<p>I’m well aware of the irony here: I’ve talked about how I’m not talking about microservices anymore. And with that, I'll shut up, and never speak of it again.</p>
<p>&nbsp;</p></span>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var $sticky = $('.post-social-share');
var $stickyrStopper = $('.post-pagination-sec');
if (!!$sticky.offset()) { // make sure ".sticky" element exists
var generalSidebarHeight = $sticky.innerHeight();
var stickyTop = $sticky.offset().top + 500;
var stickOffset = 0;
var stickyStopperPosition = $stickyrStopper.offset().top;
var stopPoint = stickyStopperPosition - generalSidebarHeight - stickOffset;
var diff = stopPoint + stickOffset;
$(window).scroll(function(){ // scroll event
var windowTop = $(window).scrollTop(); // returns number
if (stopPoint < windowTop) {
$sticky.css({ position: 'absolute',opacity:'0'});
} else if (stickyTop < windowTop+stickOffset) {
$sticky.css({ position: 'fixed', top: stickOffset,opacity:'1' });
} else {
$sticky.css({position: 'absolute', top: 'initial',opacity:'1'});
}
});
}
});
</script>
</div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span5 widget-span widget-type-cell right-col" style="" data-widget-type="cell" data-x="7" data-w="5">
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell listing-sidebar-rss" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1585037683162262" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<div class="sidebar-rss">
<div class="sidebar-recent-post-section">
<div class="sidebar-recent-related-post">
</div>
</div>
</div></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1585037960356419" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><div class="post-pagination-sec">
<div class="row-fluid-wrapper">
<div class="row-fluid">
<div class="widget-span widget-type-cell wrapper equal-height-container">
<div class="row-fluid-wrapper">
<div class="row-fluid">
<div class="span6 left-col">
<div class="span6 prev-post">
<a href="/exploring-oscal-using-neo4j">
<div class="span8 prev-pagi-text-sec">
<h3>Exploring OSCAL Using Neo4J</h3>
</div>
<div class="span4 featured-image" style="background:url(https://blog.container-solutions.com/hubfs/Screenshot%202024-12-31%20at%2011.50.00.png);background-repeat:no-repeat;
background-size:cover;height:80px;">
</div>
</a>
</div>
<div class="span6 prev-anchor align-right">
<a href="/exploring-oscal-using-neo4j"> <img src="https://cdn2.hubspot.net/hubfs/3842749/Wow%202019/Images/left-arrow.png" alt="prev-arrow">
Previous article</a>
</div>
</div>
<div class="span6 right-col">
<div class="span6 next-anchor align-left">
<a href="/claudes-structured-outputs"> Next article <img src="https://cdn2.hubspot.net/hubfs/3842749/Wow%202019/Images/right-arrow.png" alt="next-arrow">
</a>
</div>
<div class="span6 next-post">
<a href="/claudes-structured-outputs">
<div class="span4 featured-image" style="background:url(https://blog.container-solutions.com/hubfs/Morse_Key.jpg);background-size:cover;
background-repeat:no-repeat;height:80px;">
</div>
<div class="span8 next-pagi-text-sec">
<h3>Claude's Structured Outputs</h3>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell comment-sec" style=" display:block; " data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell wrapper" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell " style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget comment-sec-heading-text" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_158382180556003" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_158382180556003_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="text">Comments</span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-6 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell comment-form-sec" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-2 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget comment-heading-text" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_158382180556005" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_158382180556005_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="text">Leave your Comment</span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-2 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_158382180556006" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-blog_comments" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_158382180556006_blog_comments" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_blog_comments" style="" data-hs-cos-general-type="widget" data-hs-cos-type="blog_comments">
<div class="section post-footer">
<div id="comments-listing" class="new-comments"></div>
<div id="hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c"></div>
</div>
</span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end body -->
</div><!--end body wrapper -->
<div class="footer-container-wrapper">
<div class="footer-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-global_group " style="" data-widget-type="global_group" data-x="0" data-w="12">
<div class="" data-global-widget-path="generated_global_groups/29544596322.html"><div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell footer-grp" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell wrapper equal-height-container" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget footer-logo" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1579264940018354" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<span id="hs_cos_wrapper_module_1579264940018354_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_linked_image" style="" data-hs-cos-general-type="widget" data-hs-cos-type="linked_image"><img src="https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=150&amp;height=61&amp;name=cs-logo-white.png" class="hs-image-widget " width="150" height="61" style="max-width: 100%; height: auto;" alt="cs-logo-white" title="cs-logo-white" srcset="https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=75&amp;height=31&amp;name=cs-logo-white.png 75w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=150&amp;height=61&amp;name=cs-logo-white.png 150w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=225&amp;height=92&amp;name=cs-logo-white.png 225w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=300&amp;height=122&amp;name=cs-logo-white.png 300w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=375&amp;height=153&amp;name=cs-logo-white.png 375w, https://blog.container-solutions.com/hs-fs/hubfs/cs-logo-white.png?width=450&amp;height=183&amp;name=cs-logo-white.png 450w" sizes="(max-width: 150px) 100vw, 150px"></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-4 ">
<div class="row-fluid ">
<div class="span8 widget-span widget-type-cell four-col" style="" data-widget-type="cell" data-x="0" data-w="8">
<div class="row-fluid-wrapper row-depth-1 row-number-5 ">
<div class="row-fluid ">
<div class="span6 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="6">
<div id="hs_cos_wrapper_module_15783825602011356" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783825602011356_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="simple_menu"><div id="hs_menu_wrapper_module_15783825602011356_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-vertical" role="navigation" data-sitemap-name="" data-menu-id="" aria-label="Navigation Menu">
<ul role="menu" class="active-branch">
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com" role="menuitem" target="_self">Home</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/events" role="menuitem" target="_self">Events</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/services" role="menuitem" target="_self">Services</a></li>
<li class="hs-menu-item hs-menu-depth-1 active active-branch" role="none"><a href="https://blog.container-solutions.com" role="menuitem" target="_self">Blog</a></li>
</ul>
</div></span></div>
</div><!--end widget-span -->
<div class="span6 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="6" data-w="6">
<div id="hs_cos_wrapper_module_15783825632451363" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783825632451363_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_simple_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="simple_menu"><div id="hs_menu_wrapper_module_15783825632451363_" class="hs-menu-wrapper active-branch flyouts hs-menu-flow-vertical" role="navigation" data-sitemap-name="" data-menu-id="" aria-label="Navigation Menu">
<ul role="menu">
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/website-terms-of-use" role="menuitem" target="_self">Website terms of use</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/privacy-policy" role="menuitem" target="_self">Privacy policy</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/sexual-harassment-policy" role="menuitem" target="_self">Sexual Harassment Policy</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/data-privacy-notice-for-job-applicants" role="menuitem" target="_self">Data Privacy for Job Seekers</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/cookie-notice" role="menuitem" target="_self">Cookie Notice</a></li>
<li class="hs-menu-item hs-menu-depth-1" role="none"><a href="https://www.container-solutions.com/events-code-of-conduct" role="menuitem" target="_self">Events Code of Conduct</a></li>
</ul>
</div></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
<div class="span4 widget-span widget-type-cell four-col" style="" data-widget-type="cell" data-x="8" data-w="4">
<div class="row-fluid-wrapper row-depth-1 row-number-6 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_15783822780451167" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783822780451167_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><h4 style="line-height: 1.5; font-size: 20px; margin-bottom: 5px !important;"><span style="color: #1b1464;"><strong>Talk to sales</strong></span></h4>
<div style="line-height: 1.5;"><span style="color: #1b1464;"><a href="mailto:info@container-Solutions.com" rel=" noopener" style="color: #1b1464;">info@container-solutions.com</a></span></div></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-7 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_158452391621561" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<div class="row-fluid">
<div class="span12 connected-col" style="margin-left:0">
<div class="row-fluid-wrapper">
<div class="row-fluid">
<h4 class="footer_header">
Stay In Touch
</h4>
<ul>
<li><a href="https://www.linkedin.com/company/container-solutions/" target="_blank"><i class="fab fa-linkedin" style="color:white"></i></a></li>
<li><a href="https://twitter.com/containersoluti" target="_blank"><i class="fab fa-twitter" style="color:white"></i></a></li>
</ul>
</div>
</div>
</div>
</div></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-8 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget copy-right-text" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_15783823043581171" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module widget-type-rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><span id="hs_cos_wrapper_module_15783823043581171_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><p><span style="color: #1b1464;">© 2024 Container Solutions</span></p></span></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
<div class="row-fluid-wrapper row-depth-1 row-number-9 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-custom_widget " style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_1585658103724856" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><!-- <script>
$(window).load(function() {
$("body").addClass('all-loaded');
});
</script> --></div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div>
</div><!--end widget-span -->
</div><!--end row-->
</div><!--end row-wrapper -->
</div><!--end footer -->
</div><!--end footer wrapper -->
<!-- HubSpot performance collection script -->
<script defer src="/hs/hsstatic/content-cwv-embed/static-1.1293/embed.js"></script>
<script src="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29544596312/1743407268787/template_360_Design_Script.min.js"></script>
<script>
var hsVars = hsVars || {}; hsVars['language'] = 'en';
</script>
<script src="/hs/hsstatic/cos-i18n/static-1.53/bundles/project.js"></script>
<script src="https://blog.container-solutions.com/hubfs/hub_generated/template_assets/1/29086575625/1743407264175/template_CS--Megamenu.min.js"></script>
<script src="https://blog.container-solutions.com/hubfs/hub_generated/module_assets/1/29104102065/1743627972543/module_CS--Megamenu__helper.min.js"></script>
<script src="/hs/hsstatic/keyboard-accessible-menu-flyouts/static-1.17/bundles/project.js"></script>
<script src="/hs/hsstatic/AsyncSupport/static-1.501/js/comment_listing_asset.js"></script>
<script>
function hsOnReadyPopulateCommentsFeed() {
var options = {
commentsUrl: "https://api-na1.hubapi.com/comments/v3/comments/thread/public?portalId=2252258&offset=0&limit=10000&contentId=187168043885&collectionId=5674137972",
maxThreadDepth: 10,
showForm: true,
target: "hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c",
replyTo: "Reply to <em>{{user}}</em>",
replyingTo: "Replying to {{user}}"
};
window.hsPopulateCommentsFeed(options);
}
if (document.readyState === "complete" ||
(document.readyState !== "loading" && !document.documentElement.doScroll)
) {
hsOnReadyPopulateCommentsFeed();
} else {
document.addEventListener("DOMContentLoaded", hsOnReadyPopulateCommentsFeed);
}
</script>
<!--[if lte IE 8]>
<script charset="utf-8" src="https://js.hsforms.net/forms/v2-legacy.js"></script>
<![endif]-->
<script data-hs-allowed="true" src="/_hcms/forms/v2.js"></script>
<script data-hs-allowed="true">
hbspt.forms.create({
portalId: '2252258',
formId: 'e5ba3739-20e2-48cd-8272-c926646d555c',
pageId: '187168043885',
region: 'na1',
pageName: "Why I'm No Longer Talking to Architects About Microservices",
contentType: 'blog-post',
formsBaseUrl: '/_hcms/forms/',
css: '',
target: "#hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c",
type: 'BLOG_COMMENT',
submitButtonClass: 'hs-button primary',
formInstanceId: '6862',
getExtraMetaDataBeforeSubmit: window.hsPopulateCommentFormGetExtraMetaDataBeforeSubmit
});
window.addEventListener('message', function(event) {
var origin = event.origin; var data = event.data;
if ((origin != null && (origin === 'null' || document.location.href.toLowerCase().indexOf(origin.toLowerCase()) === 0)) && data !== null && data.type === 'hsFormCallback' && data.id == 'e5ba3739-20e2-48cd-8272-c926646d555c') {
if (data.eventName === 'onFormReady') {
window.hsPopulateCommentFormOnFormReady({
successMessage: "Hi, your comment will be reviewed and posted as soon as possible.",
target: "#hs_form_target_e5ba3739-20e2-48cd-8272-c926646d555c"
});
} else if (data.eventName === 'onFormSubmitted') {
window.hsPopulateCommentFormOnFormSubmitted();
}
}
});
</script>
<!-- Start of HubSpot Analytics Code -->
<script type="text/javascript">
var _hsq = _hsq || [];
_hsq.push(["setContentType", "blog-post"]);
_hsq.push(["setCanonicalUrl", "https:\/\/blog.container-solutions.com\/why-im-no-longer-talking-to-architects-about-microservices"]);
_hsq.push(["setPageId", "187168043885"]);
_hsq.push(["setContentMetadata", {
"contentPageId": 187168043885,
"legacyPageId": "187168043885",
"contentFolderId": null,
"contentGroupId": 5674137972,
"abTestId": null,
"languageVariantId": 187168043885,
"languageCode": "en",
}]);
</script>
<script type="text/javascript" id="hs-script-loader" async defer src="/hs/scriptloader/2252258.js"></script>
<!-- End of HubSpot Analytics Code -->
<script type="text/javascript">
var hsVars = {
render_id: "6184f526-6511-4cf1-b609-9ea2a878b69d",
ticks: 1783393705644,
page_id: 187168043885,
content_group_id: 5674137972,
portal_id: 2252258,
app_hs_base_url: "https://app.hubspot.com",
cp_hs_base_url: "https://cp.hubspot.com",
language: "en",
analytics_page_type: "blog-post",
scp_content_type: "",
analytics_page_id: "187168043885",
category_id: 3,
folder_id: 0,
is_hubspot_user: false
}
</script>
<script defer src="/hs/hsstatic/HubspotToolsMenu/static-1.640/js/index.js"></script>
<!-- Twitter universal website tag code -->
<script>
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js',
a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
// Insert Twitter Pixel ID and Standard Event data below
twq('init','ny8jx');
twq('track','PageView');
</script>
<!-- End Twitter universal website tag code -->
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v3.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<!-- Generated by the HubSpot Template Builder - template version 1.03 -->
</body></html>