{"id":1169,"date":"2026-04-02T10:00:00","date_gmt":"2026-04-02T09:00:00","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=1169"},"modified":"2026-04-02T10:00:00","modified_gmt":"2026-04-02T09:00:00","slug":"the-problem-with-simple-aws-architectures","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","title":{"rendered":"The Problem With &#8220;Simple&#8221; AWS Architectures"},"content":{"rendered":"<p>I do not trust an AWS architecture just because it looks simple on a slide.<\/p>\n<p>Simple diagrams are easy to draw. Simple systems are harder to run. The gap between those two things is where most cloud pain lives.<\/p>\n<p>A diagram with a Lambda, an API Gateway, a queue, and a database can look clean enough to reassure everybody in the room. But that picture leaves out the parts that usually matter most: retries, timeouts, permissions, deployment order, dead-letter handling, monitoring, log correlation, secrets, backfills, and what happens when one service is doing the right thing but the rest of the system is not ready for it.<\/p>\n<p>That is why I think &#8220;simple AWS architecture&#8221; is often a misleading phrase.<\/p>\n<h2>The picture is not the system<\/h2>\n<p>An architecture diagram normally shows the happy path.<\/p>\n<p>It does not show the error path, and the error path is where you earn the complexity.<\/p>\n<p>If a request fails in one place, how many retries happen? Where do they go? Who sees them? How do you tell whether the failure is in your code, an IAM policy, a throttled dependency, or a bad deployment? If a job gets halfway through and dies, how do you restart it without duplicating work? If a message arrives twice, what keeps you safe?<\/p>\n<p>Those are not edge cases. Those are the actual system.<\/p>\n<p>The smaller the team, the more dangerous it is to pretend otherwise. Small teams do not have the luxury of a lot of operational slack. If the system is only &#8220;simple&#8221; when everything is working, then it is not really simple. It is just unfinished.<\/p>\n<h2>AWS rewards the wrong kind of simplicity<\/h2>\n<p>AWS makes it easy to create a diagram that looks lightweight and modern.<\/p>\n<p>That is the trap.<\/p>\n<p>You can assemble a stack out of managed services and feel like you have avoided infrastructure complexity. In one sense, you have. In another sense, you have just moved the complexity into configuration, permissions, integration boundaries, and service behavior that is easy to underestimate until it starts failing in production.<\/p>\n<p>I have seen this enough times to have a pretty blunt view on it: if you do not understand the operational consequences of each managed service, you have not simplified anything. You have distributed the complexity into places that are harder to notice.<\/p>\n<p>That can still be the right tradeoff. I still like serverless and managed services. I just do not like pretending they are free.<\/p>\n<h2>What I look for instead<\/h2>\n<p>When I say an AWS setup is good, I usually mean it is understandable under pressure.<\/p>\n<p>That means:<\/p>\n<ul>\n<li>there are obvious failure boundaries<\/li>\n<li>retries are deliberate, not accidental<\/li>\n<li>IAM is boring enough that someone else can read it later<\/li>\n<li>logs and metrics tell the same story<\/li>\n<li>deployments do not depend on undocumented ritual<\/li>\n<li>the system still makes sense when one service is degraded<\/li>\n<\/ul>\n<p>That is a more useful definition of simple.<\/p>\n<p>Sometimes the better architecture is not the one with the fewest boxes. Sometimes it is the one with the fewest surprises.<\/p>\n<h2>Simple is not the goal<\/h2>\n<p>I would rather have a slightly more explicit AWS architecture that I can explain, debug, and operate than a tiny-looking design that falls apart the moment the first real failure shows up.<\/p>\n<p>That does not mean you should build a monster. It means you should be honest about where the complexity lives.<\/p>\n<p>In cloud systems, the diagram is the easy part. The system is everything the diagram left out.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS diagrams love to look simple. The problem is that the operational reality behind them is usually doing a lot more work than the picture admits.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13,25],"tags":[58,52,57,53],"class_list":["post-1169","post","type-post","status-publish","format-standard","hentry","category-programming","category-software-engineer","tag-architecture","tag-aws","tag-cloud","tag-serverless"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Problem With &quot;Simple&quot; AWS Architectures - wade.one<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Problem With &quot;Simple&quot; AWS Architectures - wade.one\" \/>\n<meta property=\"og:description\" content=\"AWS diagrams love to look simple. The problem is that the operational reality behind them is usually doing a lot more work than the picture admits.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-02T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1518\" \/>\n\t<meta property=\"og:image:height\" content=\"1506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"The Problem With &#8220;Simple&#8221; AWS Architectures\",\"datePublished\":\"2026-04-02T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/\"},\"wordCount\":587,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"keywords\":[\"architecture\",\"aws\",\"cloud\",\"serverless\"],\"articleSection\":[\"Programming\",\"Software Engineer\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/\",\"name\":\"The Problem With \\\"Simple\\\" AWS Architectures - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"datePublished\":\"2026-04-02T09:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/02\\\/the-problem-with-simple-aws-architectures\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Problem With &#8220;Simple&#8221; AWS Architectures\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Problem With \"Simple\" AWS Architectures - wade.one","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","og_locale":"en_GB","og_type":"article","og_title":"The Problem With \"Simple\" AWS Architectures - wade.one","og_description":"AWS diagrams love to look simple. The problem is that the operational reality behind them is usually doing a lot more work than the picture admits.","og_url":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","og_site_name":"wade.one","article_published_time":"2026-04-02T09:00:00+00:00","og_image":[{"width":1518,"height":1506,"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/"},"author":{"name":"","@id":""},"headline":"The Problem With &#8220;Simple&#8221; AWS Architectures","datePublished":"2026-04-02T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/"},"wordCount":587,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"keywords":["architecture","aws","cloud","serverless"],"articleSection":["Programming","Software Engineer"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","url":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","name":"The Problem With \"Simple\" AWS Architectures - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"datePublished":"2026-04-02T09:00:00+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"The Problem With &#8220;Simple&#8221; AWS Architectures"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1167,"url":"https:\/\/wade.one\/blog\/2026\/03\/31\/serverless-is-great-until-you-need-to-debug-it-at-2-a-m\/","url_meta":{"origin":1169,"position":0},"title":"Serverless Is Great Until You Need to Debug It at 2 a.m.","author":"","date":"March 31, 2026","format":false,"excerpt":"I still like serverless, but the tradeoff is obvious when something breaks at 2 a.m. The architecture is easy to ship and harder to reason about when you need logs, context, and a fast path to the real failure.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1168,"url":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","url_meta":{"origin":1169,"position":1},"title":"Why I Still Like Serverless for Small Teams","author":"","date":"April 1, 2026","format":false,"excerpt":"Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1124,"url":"https:\/\/wade.one\/blog\/2023\/03\/28\/aws-cloudformation-vs-azure-the-superior-choice-for-devops\/","url_meta":{"origin":1169,"position":2},"title":"AWS CloudFormation vs. Azure: The Superior Choice for DevOps","author":"Wade","date":"March 28, 2023","format":false,"excerpt":"In the ever-evolving world of cloud computing, choosing the right cloud service provider can be a daunting task. Two of the most popular platforms, Amazon Web Services (AWS) and Microsoft Azure, are often pitted against each other. Both have their merits, but when it comes to DevOps, AWS has an\u2026","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1163,"url":"https:\/\/wade.one\/blog\/2026\/03\/30\/what-clients-actually-need-from-a-software-consultant\/","url_meta":{"origin":1169,"position":3},"title":"What Clients Actually Need From a Software Consultant","author":"Wade","date":"March 30, 2026","format":false,"excerpt":"Clients do not really need a consultant who just says clever technical things. They need someone who can reduce risk, create clarity, and help them make better decisions.","rel":"","context":"In &quot;Software Engineer&quot;","block_context":{"text":"Software Engineer","link":"https:\/\/wade.one\/blog\/category\/software-engineer\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":354,"url":"https:\/\/wade.one\/blog\/2009\/11\/30\/oasis-of-the-seas-royal-promenade-video\/","url_meta":{"origin":1169,"position":4},"title":"Oasis of the Seas &#8211; Royal Promenade Video","author":"Wade","date":"November 30, 2009","format":false,"excerpt":"Every time I see the Oasis of the Seas, I am always in awe of it. More and more I want to be on it now, but alas, I have to wait. This video is a short clip about the new Royal Promenade, just take a look at the sheer\u2026","rel":"","context":"In &quot;Holidays&quot;","block_context":{"text":"Holidays","link":"https:\/\/wade.one\/blog\/category\/holidays\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1115,"url":"https:\/\/wade.one\/blog\/2023\/03\/26\/mongodb-vs-documentdb\/","url_meta":{"origin":1169,"position":5},"title":"MongoDB vs DocumentDB","author":"Wade","date":"March 26, 2023","format":false,"excerpt":"I've been working on a new as-fast-as-possible platform for a specific situation I can't go in to right now but I wanted to use MongoDB, however, I needed to reduce costs and use AWS so I wanted to use DocumentDB and needed to compare. Sadly DocumentDB does not cover 100%\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=1169"}],"version-history":[{"count":1,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1169\/revisions"}],"predecessor-version":[{"id":1193,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1169\/revisions\/1193"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=1169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=1169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=1169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}