{"id":24916,"date":"2020-11-02T19:05:25","date_gmt":"2020-11-02T19:05:25","guid":{"rendered":"https:\/\/www.intercom.com\/blog\/?p=24916"},"modified":"2025-01-03T13:28:58","modified_gmt":"2025-01-03T13:28:58","slug":"six-principles-of-system-design","status":"publish","type":"post","link":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/","title":{"rendered":"Six principles of system design"},"content":{"rendered":"<p>The start of any journey begins with consulting a map.<\/p>\n<p>But if you\u2019re a <a href=\"https:\/\/www.intercom.com\/blog\/product-designer-impact\/\" target=\"_blank\" rel=\"noopener noreferrer\">product designer<\/a> starting out on a new project, you might find yourself with a blank page, and the job of drawing the map: of defining the high-level design direction that your team is going to use to chart their course. Mess it up, and you could find yourself quickly marching your team off a cliff.<\/p>\n<p>What you need to create is a clear overview of the system you\u2019re all about to build \u2013 you need system design (not to be confused with a <a href=\"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/\" target=\"_blank\" rel=\"noopener noreferrer\">design system<\/a>). This sounds simple, but can be incredibly challenging in practice. After all, how do you go about mapping something that doesn\u2019t even exist yet?<\/p>\n<blockquote class=\"pullquote-style-one\"><p>&#8220;System design forces everyone into a shared common understanding before embarking on the process of building&#8221;<\/p><\/blockquote>\n<p>System design, then, is an act of creative cartography \u2013 it is like creating a map in advance of creating the territory. But it\u2019s also incredibly valuable: it forces everyone into a shared common understanding before embarking on the process of building.<\/p>\n<h2 id=\"creating-a-system-design\">Creating a system design<\/h2>\n<p>Maybe I\u2019m asking for trouble here: I\u2019ve chosen to write about what is probably the most abstract part of the entire design process, that of forming conceptual ideas and trying to inject a picture of those ideas into a colleague\u2019s brain. This is why many of us struggle with this stage. However, I think you can break it down into relatively simple terms.<\/p>\n<p>In practice, system design work usually takes the form of a diagram: boxes and arrows describing the main parts of the product, and how they all connect to each other. As <a href=\"https:\/\/www.intercom.com\/blog\/applying-systems-thinking-in-product-design\/\" target=\"_blank\" rel=\"noopener noreferrer\">we\u2019ve written before<\/a>, a good system design defines the following:<\/p>\n<ul>\n<li><strong>Elements<\/strong>: What are the core elements or objects in the system?<\/li>\n<li><strong>Interconnections<\/strong>: How are the elements connected? What are the relationships? What are their inputs and outputs?<\/li>\n<li><strong>Purpose<\/strong>: What does this achieve?<\/li>\n<\/ul>\n<p>Creating this map is often an emergent process that happens collaboratively at a whiteboard (still the best tool there is for creating system designs: quick and dirty, modifiable, collaborative, and impossible to get lost in details). Given that it might be another while until any of us sees a whiteboard again, <a href=\"https:\/\/www.intercom.com\/blog\/podcasts\/miros-andrey-khusid-on-the-art-of-distributed-teamwork\/\" target=\"_blank\" rel=\"noopener noreferrer\">tools like Miro<\/a> are a great digital alternative. But the ultimate output is almost always the same: a clear diagram illustrating objects and the relationships between them.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/07\/Artboard@2x.png\" \/><\/p>\n<p style=\"text-align: center;\"><em>An example of system design for part of Intercom<\/em><\/p>\n<p>You might think you can dodge this hard bit and just quickly talk it through instead. But language can be slippery: what I\u2019m thinking and what you\u2019re thinking may be significantly different, even though we\u2019re using similar language.<\/p>\n<p>What\u2019s more, most products that require this level of mapping can get complicated quickly. It can also be hard just holding a clear picture of a complex system in your head.<\/p>\n<p>So you need to be able to diagram those ideas out. Get your map down on paper. And most importantly, the team needs to get aligned on what we\u2019re building.<\/p>\n<h2 id=\"agreeing-on-a-system-design\">Agreeing on a system design<\/h2>\n<p>Getting to that point, however, can be tough. Here are some common challenges you might encounter:<\/p>\n<ul>\n<li><strong>Subjective preferences:<\/strong> Everyone disagrees over whose personal vision of the system represents the best or truest version.<\/li>\n<li><strong>Pursuit of a \u201cperfect\u201d system:<\/strong> You lose yourself in designing the system as an end in itself, where the goal becomes inherent elegance or cleverness rather than practical value.<\/li>\n<li><strong>Divergent mental models:<\/strong> Designers may naturally tend towards thinking in terms of layouts or user flows, Engineers in terms of code architecture, PMs in terms of value delivered. Those viewpoints need to converge.<\/li>\n<li><strong>Scope creep:<\/strong> We expect too much of the system and believe that it should resolve all product problems. Once people start thinking in systems, they see how everything&#8217;s connected, which naturally leads them to add more and more scope &#8220;because, like, everything&#8217;s connected, man!&#8221; *exhales, coughs*<\/li>\n<\/ul>\n<p>Herein lies the very point of doing this work. All of the things that make a canonical system design difficult to nail down are the reasons it\u2019s worth doing. It\u2019s difficult because it forces you to resolve ambiguity, ferret out unknown unknowns, get super-specific about how the system will work, and agree on it all.<\/p>\n<p>The goal is to hammer out these differences early on, while doing so is still cheap. You don\u2019t want to realize you\u2019ve all been singing from different hymn sheets several months into building something, and then take on an expensive course correction. You want to figure all that out at the very start.<\/p>\n<blockquote class=\"pullquote-style-two\"><p>&#8220;You need to create the scaffolding for how you want your stakeholders to interrogate the system design&#8221;<\/p><\/blockquote>\n<p>So inevitably you reach the point where you think you have something you\u2019re happy with. Now you just need to get everyone on board.<\/p>\n<p>Just like when you\u2019re presenting mockups for feedback, it\u2019s not enough to just present your work on screen and expect instant alignment. As a designer, you need to create the scaffolding for how you want your stakeholders to interrogate the system design and structure their feedback, and not get sucked back into the misalignment that your work is intended to solve.<\/p>\n<h2 id=\"the-purpose-of-principles\">The purpose of principles<\/h2>\n<p>Most likely you already know how to do this. It probably happens all the time in <a href=\"https:\/\/www.intercom.com\/blog\/running-productive-design-critiques\/\" target=\"_blank\" rel=\"noopener noreferrer\">Design Crit<\/a> when giving UI feedback. You deliver your comments in terms of generally agreed principles.<\/p>\n<p>For example, when giving UI feedback I try to frame any feedback as objectively as I can. \u201cI don\u2019t like the way you laid out that toolbar\u201d is bad feedback: it\u2019s subjective and closed-off. \u201cMaking the toolbar layout more like our other menus would increase consistency\u201d is better: it\u2019s couched in a well-understood principle (consistency) and opens the door to discussing rationale tradeoffs.<\/p>\n<blockquote class=\"pullquote-style-two\"><p>&#8220;There\u2019s no Fitt\u2019s Law or Gestalt Principles for boxes and arrows&#8221;<\/p><\/blockquote>\n<p>This approach to giving feedback is well-established when critiquing UI design, but there\u2019s no <a href=\"https:\/\/lawsofux.com\/fittss-law\" target=\"_blank\" rel=\"noopener noreferrer\">Fitt\u2019s Law<\/a> or <a href=\"https:\/\/en.wikipedia.org\/wiki\/Principles_of_grouping\" target=\"_blank\" rel=\"noopener noreferrer\">Gestalt Principles<\/a> for boxes and arrows. And so in many cases the feedback can quickly become loose, reactive, and subjective.<\/p>\n<p>When faced with a recent situation like this at Intercom, a group of us aligned on the following principles for assessing a system design. Rather than assessing the design and relying on overly subjective interpretations (&#8220;I don\u2019t like it,&#8221; or &#8220;That\u2019s not exactly how I think of it&#8221;) we tried to assess how well the system design stacked up against the following criteria.<\/p>\n<h2 id=\"principles-of-good-system-design\">Principles of good system design<\/h2>\n<p>(Note that these are not presented as universal principles of system design, but rather ones that worked for this specific project. Hopefully they are useful examples, but I urge you to take a shot at your own list.)<\/p>\n<h3 style=\"padding-left: 40px;\">1. Keep it as simple as possible to address today\u2019s known problems<\/h3>\n<p style=\"padding-left: 40px;\">Don\u2019t add complexity to the system to solve hypothetical problems we might face in the future. Thinking ahead is great, but we shouldn\u2019t take on the burden of planning for eventualities that might not even happen. Let\u2019s not try to boil the ocean.<\/p>\n<p style=\"padding-left: 40px;\">If we can make the system more open-ended without adding a ton of complexity to the system or adding lots of work, that&#8217;s great. But otherwise let\u2019s stay focused.<\/p>\n<p style=\"padding-left: 40px;\"><em>Can we make this simpler? Are we making too many assumptions about how this may need to be extended in future?<\/em><\/p>\n<h3 style=\"padding-left: 40px;\">2. Ensure that it&#8217;s legible<\/h3>\n<p style=\"padding-left: 40px;\">A successful system should be easy for users to understand when they <a href=\"https:\/\/www.intercom.com\/blog\/fundamentals-good-interaction-design\/\" target=\"_blank\" rel=\"noopener noreferrer\">interact with the product<\/a>. They will need to look at the UI (when we design it) and be able to roughly figure out what the parts of the system are.<\/p>\n<p style=\"padding-left: 40px;\">For example, Slack clearly exposes itself, where it\u2019s possible to discern the underlying system by looking at it \u2013 there are channels, inside each channel there&#8217;s a stream of messages, each message can have a thread, etc.<\/p>\n<p style=\"padding-left: 40px;\"><em>Can the correct user mental model be expressed via the UI? Is the architecture of the system evident in the interface? Will users be able to figure this out without an explanation?<\/em><\/p>\n<h3 style=\"padding-left: 40px;\">3. Move complexity to infrequently used parts of the system<\/h3>\n<p style=\"padding-left: 40px;\">We will accept less efficient workflows and higher learning curves for one-time tasks if it means we get to make common tasks faster and simpler.<\/p>\n<p style=\"padding-left: 40px;\">Assuming there&#8217;s a certain burden of functional complexity that the system must carry (<a href=\"https:\/\/lawsofux.com\/teslers-law\" target=\"_blank\" rel=\"noopener noreferrer\">Tesler\u2019s Law<\/a>), then think about where you can live with having more complexity. For example, it\u2019s more acceptable for it to be difficult for a manager to set up a team (which will happen once) than it is for a customer support rep to reassign a conversation (which will happen dozens of times a day).<\/p>\n<p style=\"padding-left: 40px;\"><em>Does this system require too much complexity up front? Are the least-used parts of the system over-exposed? Which users interact with each part of the system?<\/em><\/p>\n<h3 style=\"padding-left: 40px;\">4. Don\u2019t take on non-core problems<\/h3>\n<p style=\"padding-left: 40px;\">Don\u2019t get distracted by the implementation details. Remember, you\u2019re not designing the entire product when you\u2019re designing the system: you\u2019re designing the major interrelated parts of it. The system design needs to describe the shape of the solution. It doesn\u2019t need to answer every detailed design question.<\/p>\n<p style=\"padding-left: 40px;\">Try to figure out what are the core things that the system can handle and what things you will be able to solve by designing the UI, or with clear workflows, or settings if needed.<\/p>\n<p style=\"padding-left: 40px;\"><em>Is this the right zoom level for this diagram? Do we really need to solve this part of the problem at the system level?<\/em><\/p>\n<h3 style=\"padding-left: 40px;\">5. Build it to scale from simple use case to complicated use case<\/h3>\n<p style=\"padding-left: 40px;\">One of the dangers of moving upmarket (i.e. focusing on larger customers) is that you can alienate and create unnecessary complexity for your smaller customers. It&#8217;s too easy to design just for the needs of your most demanding users. The most elegant systems allow for simple use cases that then scale up as needed.<\/p>\n<p style=\"padding-left: 40px;\">Intercom, for instance, is used by two-person startups who want a way to chat with their customers, and it is also used by huge teams with complex needs. You want a system that works simply for the little guy and scales up in complexity for the big guy.<\/p>\n<p style=\"padding-left: 40px;\"><em>What parts of the system are relevant to all users? What parts are niche?<\/em><\/p>\n<h3 style=\"padding-left: 40px;\">6. Prioritize adjacency to the existing system<\/h3>\n<p style=\"padding-left: 40px;\">All other things being equal, choose a system design that\u2019s most similar to what we currently have: less for us to build, less change for our users to adapt to.<\/p>\n<p style=\"padding-left: 40px;\">System design is an ongoing process, rather than a once-off project. Your product will evolve, and anytime there is an expansion of what the product does, or a change in how the product operates, that&#8217;s where the adjacencies in the existing system becomes a factor to assess.<\/p>\n<p style=\"padding-left: 40px;\">Adjacency is beneficial because it reduces change aversion or it reduces the barriers to understanding what the new version of your product is.<\/p>\n<p style=\"padding-left: 40px;\"><em>How hard is it to get to this from what we have today?<\/em><\/p>\n<h2 id=\"chart-your-own-course\">Chart your own course<\/h2>\n<p>Like I said, these are not universally applicable principles, but hopefully they serve as an example to help you to assess and present your own system design work.<\/p>\n<blockquote class=\"pullquote-style-one\"><p>&#8220;System design is like creating a map of the complete product to act as a guide for the product teams that build it&#8221;<\/p><\/blockquote>\n<p>Ultimately, system design is like creating a map of the complete product to act as a guide for the product teams that build it. The art of system design comes in judging the scale just right \u2013 providing enough information to give an accurate sense of the terrain and not so much that it risks becoming a 1:1 representation of the product, like the <a href=\"https:\/\/360.here.com\/2015\/06\/14\/70-year-old-short-story-goes-heart-modern-map-making\/\" target=\"_blank\" rel=\"noopener noreferrer\">proverbial Borgesian map<\/a> that exactly covers the territory it is merely supposed to depict.<\/p>\n<p>Get it right, and you\u2019ll have an invaluable document that will align your whole team around a shared understanding, and a powerful tool to help you navigate the complexities ahead.<\/p>\n<hr \/>\n<p class=\"inline-cta-quote\">Are you a product designer interested in solving these problems? Join our team \u2013 <a href=\"https:\/\/intercom.design\/#join-our-team\">we\u2019re hiring in Dublin, London, or remote in Ireland or the UK<\/a>.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>System design is a crucial early step in any project \u2013\u00a0it creates a shared understanding before embarking on the process of building. Here are our 6 key principles for successful system design.<\/p>\n","protected":false},"author":121,"featured_media":24919,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"category":[5],"tags":[153,146,24767],"coauthors":[359],"class_list":["post-24916","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-and-design","tag-product-design","tag-recruitment","tag-system-design"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Six Principles of System Design - The Intercom Blog<\/title>\n<meta name=\"description\" content=\"System design is like creating a map before beginning to build a product. Here are our 6 key principles for successful system design.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Six principles of system design\" \/>\n<meta property=\"og:description\" content=\"System design is like creating a map before beginning to build a product. Here are our 6 key principles for successful system design.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/\" \/>\n<meta property=\"og:site_name\" content=\"The Intercom Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/intercominc\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-02T19:05:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-03T13:28:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"842\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Emmet Connolly\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@thoughtwax\" \/>\n<meta name=\"twitter:site\" content=\"@intercom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emmet Connolly\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/\"},\"author\":{\"name\":\"Emmet Connolly\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/39cdaf902e6a97d522d9ec3f6890894d\"},\"headline\":\"Six principles of system design\",\"datePublished\":\"2020-11-02T19:05:25+00:00\",\"dateModified\":\"2025-01-03T13:28:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/\"},\"wordCount\":2066,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/System-Design-Hero.jpg\",\"keywords\":[\"product design\",\"recruitment\",\"system design\"],\"articleSection\":[\"Product &amp; Design\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/\",\"name\":\"Six Principles of System Design - The Intercom Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/System-Design-Hero.jpg\",\"datePublished\":\"2020-11-02T19:05:25+00:00\",\"dateModified\":\"2025-01-03T13:28:58+00:00\",\"description\":\"System design is like creating a map before beginning to build a product. Here are our 6 key principles for successful system design.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/six-principles-of-system-design\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/System-Design-Hero.jpg\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/System-Design-Hero.jpg\",\"width\":1800,\"height\":842,\"caption\":\"Intercom System Design\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"name\":\"The Intercom Blog\",\"description\":\"Articles and Podcasts on Customer Service, AI and Automation, Product, and more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\",\"name\":\"The Intercom Blog\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"width\":1000,\"height\":1000,\"caption\":\"The Intercom Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/intercominc\",\"https:\\\/\\\/x.com\\\/intercom\",\"https:\\\/\\\/www.instagram.com\\\/intercom\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/2491343\",\"https:\\\/\\\/www.pinterest.ie\\\/intercom\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJG0MvLP03kyzzAkD-w98aQ\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Intercom_(company)\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/39cdaf902e6a97d522d9ec3f6890894d\",\"name\":\"Emmet Connolly\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pgaeb72670d7c9815e49f2bd6cf8170502\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg\",\"caption\":\"Emmet Connolly\"},\"description\":\"Emmet is a digital product designer, leading the Product Design team at Intercom. Before that, he co-founded and designed Android Wear and designed Google Flights. He also writes at his blog, thoughtwax.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/emmetconnolly\\\/\",\"https:\\\/\\\/x.com\\\/thoughtwax\"],\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/author\\\/thoughtwax\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Six Principles of System Design - The Intercom Blog","description":"System design is like creating a map before beginning to build a product. Here are our 6 key principles for successful system design.","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:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/","og_locale":"en_US","og_type":"article","og_title":"Six principles of system design","og_description":"System design is like creating a map before beginning to build a product. Here are our 6 key principles for successful system design.","og_url":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/","og_site_name":"The Intercom Blog","article_publisher":"https:\/\/www.facebook.com\/intercominc","article_published_time":"2020-11-02T19:05:25+00:00","article_modified_time":"2025-01-03T13:28:58+00:00","og_image":[{"width":1800,"height":842,"url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg","type":"image\/jpeg"}],"author":"Emmet Connolly","twitter_card":"summary_large_image","twitter_creator":"@thoughtwax","twitter_site":"@intercom","twitter_misc":{"Written by":"Emmet Connolly","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/#article","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/"},"author":{"name":"Emmet Connolly","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/39cdaf902e6a97d522d9ec3f6890894d"},"headline":"Six principles of system design","datePublished":"2020-11-02T19:05:25+00:00","dateModified":"2025-01-03T13:28:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/"},"wordCount":2066,"publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg","keywords":["product design","recruitment","system design"],"articleSection":["Product &amp; Design"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/","url":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/","name":"Six Principles of System Design - The Intercom Blog","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/#primaryimage"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg","datePublished":"2020-11-02T19:05:25+00:00","dateModified":"2025-01-03T13:28:58+00:00","description":"System design is like creating a map before beginning to build a product. Here are our 6 key principles for successful system design.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/six-principles-of-system-design\/#primaryimage","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg","width":1800,"height":842,"caption":"Intercom System Design"},{"@type":"WebSite","@id":"https:\/\/www.intercom.com\/blog\/#website","url":"https:\/\/www.intercom.com\/blog\/","name":"The Intercom Blog","description":"Articles and Podcasts on Customer Service, AI and Automation, Product, and more","publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intercom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intercom.com\/blog\/#organization","name":"The Intercom Blog","url":"https:\/\/www.intercom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","width":1000,"height":1000,"caption":"The Intercom Blog"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/intercominc","https:\/\/x.com\/intercom","https:\/\/www.instagram.com\/intercom\/","https:\/\/www.linkedin.com\/company\/2491343","https:\/\/www.pinterest.ie\/intercom\/","https:\/\/www.youtube.com\/channel\/UCJG0MvLP03kyzzAkD-w98aQ","https:\/\/en.wikipedia.org\/wiki\/Intercom_(company)"]},{"@type":"Person","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/39cdaf902e6a97d522d9ec3f6890894d","name":"Emmet Connolly","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pgaeb72670d7c9815e49f2bd6cf8170502","url":"https:\/\/secure.gravatar.com\/avatar\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg","caption":"Emmet Connolly"},"description":"Emmet is a digital product designer, leading the Product Design team at Intercom. Before that, he co-founded and designed Android Wear and designed Google Flights. He also writes at his blog, thoughtwax.","sameAs":["https:\/\/www.linkedin.com\/in\/emmetconnolly\/","https:\/\/x.com\/thoughtwax"],"url":"https:\/\/www.intercom.com\/blog\/author\/thoughtwax\/"}]}},"jetpack_featured_media_url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2020\/10\/System-Design-Hero.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/24916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/users\/121"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/comments?post=24916"}],"version-history":[{"count":0,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/24916\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media\/24919"}],"wp:attachment":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media?parent=24916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/category?post=24916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/tags?post=24916"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/coauthors?post=24916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}