{"id":3108,"date":"2022-04-01T15:31:21","date_gmt":"2022-04-01T20:31:21","guid":{"rendered":"https:\/\/www.northone.com\/blog\/?p=3108"},"modified":"2022-12-08T07:40:18","modified_gmt":"2022-12-08T12:40:18","slug":"serverless-architecture","status":"publish","type":"post","link":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture","title":{"rendered":"Building North One: What Is Serverless Architecture and How Do We Use It"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"The-Serverless-Journey-at-North One\"><span class=\"ez-toc-section\" id=\"The_Serverless_Journey_at_North_One\"><\/span>The Serverless Journey at North One<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>While many companies today are experimenting with serverless architecture in various forms, North One has the distinction of being (almost!) entirely serverless. From a developer perspective, that\u2019s a pretty special thing. Serverless architecture is the near-total abstraction of the server layer from the application layer. There are a lot of fun problems to solve in traditional server architecture, but every \u201cgood\u201d problem is inevitably countered by ten \u201cbad\u201d ones, typically solved in obscurity with a lot of effort and low gain. For North One to embrace serverless development as we have, the biggest gains are in the things we don\u2019t think about, the services we don\u2019t have to manage, and the layer of complexity that is already solved.<br><br>It\u2019s easy to imagine developers writing lines of code to solve a problem, but in a more traditional server-based stack, a lot of work goes into the foundational architecture on which that code runs. For even a single server, you have to answer a staggering number of questions, like: What performance-based hardware requirements do you have? What kind of operating system fits best? How do keep changes or request volume from slowing down (or taking down!) the server? With server-based stacks, everything also needs to be provisioned for worst-case scenarios, ultimately costing time and money for unused processing (but hey, better safe than sorry, right?).<br><br>Serverless, on the other hand, takes away all that complexity, and leaves you with a baseline of performance and reliability so that your code is just your code! What kind of hardware? What kind of operating system? Don\u2019t know, don\u2019t care. AWS Serverless takes care of all that for us, enabling us to focus on the code that actually makes a difference for our business. Much like building with LEGO pieces, our architectural development becomes a highly composable yet systematic process: we write code to handle the input, execution, and output for a given request. Scale is still considered, but the vast AWS ecosystem allows us to leverage easily configurable services that are most appropriate for our use-case.<br><br>There are a lot of great services to solve interesting problems in the AWS Serverless catalog, and far too many to cover in just one post, so I\u2019m going to focus on just three of my favorites: SQS, Lambda, and DynamoDB.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Our-Favorite-Pieces\"><span class=\"ez-toc-section\" id=\"Our_Favorite_Pieces\"><\/span>Our Favorite Pieces<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"SQS\"><span class=\"ez-toc-section\" id=\"SQS\"><\/span>SQS<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>SQS, or Simple Queue Service, is the original AWS service, and one of the core services for scalability. It\u2019s a queue, yes, but from a development perspective, it\u2019s an ideal store for transient data. If you think of data flowing through our systems as water flowing downwards, SQS is like a massive funnel. We can collect any amount of messages from any number of sources, and we run code to \u201cdrain\u201d messages at the bottom of that funnel. As the volume of messages going into the queue dips or spikes, we define the rate we pull those messages to drain that funnel, providing message output at a consistent rate for variable input. We open, close, or limit the tap with the click of a button!<br><br>SQS also facilitates a number of healthy practices for failure scenarios. The dream is that all the code we write works the first time all the time, but in practice, that\u2019s never quite true. Any code can fail for a number of reasons, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The code has a bug and doesn\u2019t work in certain cases (logic error)<\/li>\n\n\n\n<li>The code connects to an external service that does not respond to every request (rate limited)<\/li>\n\n\n\n<li>The code connects to something externally that is no longer available (service outage).<\/li>\n<\/ul>\n\n\n\n<p>SQS defines a difference between when a message is read from the queue and when it is pulled from the queue. We write code to read it, and if successful, the message is pulled automatically. If that code fails for any reason, no problem! The message is still in the queue, just invisible to other consumers for a period of time.<br><br>That covers us from intermittent failures, but what about more permanent failures in the case of a code error or service outage? SQS has patterns for a secondary queue referred to as a \u201cDead-Letter Queue\u201d (DLQ). We hope for the best but prepare for the worst. Any message that is read but not removed after a certain number of times is automatically drained into the DLQ, keeping our main queue healthy and fluid. We are able to monitor the DLQ for even a single message. At that time, we can either: have other code handle the error, assuming we know what it might be, or we can let the messages pool until a human can intervene and identify the problem. Is the problem caused by a service outage? No problem, we can wait until it\u2019s back on, and then drain the DLQ back into the main queue! Is the problem caused by a code error? We just need to deploy a fix, then do the exact same thing, and nothing is lost in the process.<br><br>We recently performed a major back-end service migration for onboarding new customers in order to facilitate future development. This is, understandably, a pretty stressful scenario to go through, especially for a core service. We needed to make sure that the onboarding service was down for as little time as possible (is there a way we can migrate without taking down the service at all?), that the data we needed was fully migrated and transformed as necessary from the old service to new, and that we could easily identify if anything went wrong. Luckily, our onboarding service already had an SQS queue set up to consolidate data early in the process. When we turned off the original back-end service, messages simply sat in the queue while we performed the data migration. When ready, we fed that queue into the new service.<br><br>The data migration also required us to validate our onboarding records and, if eligible, attempt to copy each record to the new service. If it failed for any reason, we wanted to know about it, but we also didn\u2019t want it to block any other messages. So, we added every record into an SQS queue where they could be processed individually. If a record couldn\u2019t be migrated for any reason we didn\u2019t anticipate, they were safely retried a number of times before being collected in a DLQ, where the dev team could identify what went wrong for that record and how to fix it after the migration. No sweat!<br><\/p>\n\n\n\n<p><strong>Lambda<\/strong><\/p>\n\n\n\n<p>It\u2019s nice to have pre-built solutions to our problems, but we also need to be able to run our own code. For this, AWS Lambda is the go-to code solution. Application code can be unruly, and even the best-intentioned code-base can be hard to manage over time. Lambda functions, on the other hand, encourage us to write small bursts of code to solve a single problem when they run. Remember when we needed to migrate customer records from one service to another in the previous example? With lambda, we were able to write one function that is specifically tailored to that problem for a single record. When we need to run that code, it doesn\u2019t matter whether we trigger that code to run once or one thousand times in parallel. A single function that takes too long, or fails, has no impact on the other functions being executed because they don\u2019t share any resources underneath the hood!<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DynamoDB\"><span class=\"ez-toc-section\" id=\"DynamoDB\"><\/span>DynamoDB<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>As a database, DynamoDB is another incredible serverless service from AWS which we rely on heavily to achieve scalability. To provide a bit of context, it\u2019s important to understand that historically, data storage has been expensive. It\u2019s easy to see the price reduction over time when we talk about the average hard-drive from the 90s compared to today, where we can purchase an exponentially bigger data storage for a fraction of the price. It might surprise you to learn that the most prolific database patterns today originated from that same time, and continue to use patterns that optimize for storage efficiency rather than performance.<br>DynamoDB on the other hand, takes on a radically different approach to storing data in order to optimize for performance rather than storage.<\/p>\n\n\n\n<p>A good analogy for this is like living in a house with roommates. Imagine it\u2019s a small place, and it has a single pantry. You and your roommates are fairly tidy people, but you all have pots, pans, ingredients, cleaning products, etc. that you need to store. All your pots are different shapes and sizes, but you can place them inside each other like Russian nesting dolls. You do something similar with your perishables and your kitchen products in order to get the most out of the space. This is an organized way to store things, and perfect if you and your roommates never need to add or remove things, but real life isn\u2019t like that. You and your roommates all need to get your pans when you cook, so you have to move all the pans to access yours. When you put it back, you do the same. And what about when your roommate needs a lot of different things and he\u2019s already in the pantry? You\u2019ll need to wait for him to finish before you can get your own things.<br><br>Now, let\u2019s say you and your roommates move to a big new house, containing multiple pantry rooms. You could have a pantry for every type of thing! a pantry for pots and pans, a pantry for cleaning products, a pantry for food, etc. that\u2019s much more organized, but chances are you and your roommates will use some of those pantries more than others; you\u2019ll still be in each others way every time you need to get cereal for breakfast!<br><br>What if there were enough pantries for each roommate to have their own pantry? Would you still want to share space, or would you rather be able to walk into a pantry knowing everything is yours? If you need your favourite pan, you simply walk in and grab it, and you put it in the same place when you\u2019re done. Your roommates keep their things in their pantries, you keep your things in yours, and it doesn\u2019t matter who needs what, and it doesn\u2019t matter how long anyone takes in their own pantry to get what they need; you aren\u2019t bumping shoulders every time you need similar things. Most services we build take advantage of this kind of pattern, which allows our data volume and cost to grow linearly, while our performance remains static (a rare thing in databases).<\/p>\n\n\n\n<p>Consider an example of data for a workout-tracking app. A conventional database pattern might include the following tables (or pantries from our analogy above):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>User Data<\/li>\n\n\n\n<li>Routines<\/li>\n\n\n\n<li>User-Routine (including timestamp and record of completion)<\/li>\n<\/ul>\n\n\n\n<p>That\u2019s an organized approach and very storage efficient, but this also means a lot of users will be reading, writing, and updating the same user-routine table; ultimately slowing down the process. Furthermore, there may be variance in routines; Existing routines can change, and new routines can be added with new definitions for completion, ultimately modifying the definition of both in the user-routine table.<br>An expert examining the scenario above will tell you that there are a lot of sophisticated patterns that can be applied to mitigate the performance hit, but why bother? A DynamoDB approach to this would be to consider that the way this data is accessed is by user and date\/time. So what if the data was stored by user first and date\/time second? The user can have their own section of the database to store their full routine for a given date\/time.<br>We stop worrying about the volume of created or updated records because no two users are ever in the same space. The routine definition can be included in each record at the time of completion, so we never have to worry about how the routine definition changing over time impacts historical records. For better performance at scale and a simpler implementation, everyone wins.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Building-Blocks-for-the-Future\"><span class=\"ez-toc-section\" id=\"Building_Blocks_for_the_Future\"><\/span>Building Blocks for the Future<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>One of the greatest benefits of a serverless stack doesn\u2019t come from a single service, but is instead from the ability to adapt and evolve the patterns we use. Every new product we build is an opportunity to make our technology better, faster, and more resilient (and we\u2019re always building new products!).<\/p>\n\n\n\n<p>As we at North One continue to grow and expand our expertise and platform, we expect our serverless capabilities to grow with us, allowing us to stay ahead of the curve on our data initiatives.<\/p>\n\n\n\n<p>If you are interested in joining North One, or just want to learn more about what it is like to be an engineer on our team, <a href=\"https:\/\/boards.greenhouse.io\/northone\">connect with us here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Serverless Journey at North One While many companies today are experimenting with serverless architecture in various forms, North One has the distinction of being (almost!) entirely serverless. From a&#8230;<\/p>\n","protected":false},"author":27,"featured_media":3105,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[157],"tags":[],"class_list":["post-3108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-northone"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building North One: What is Serverless Architecture? | North One<\/title>\n<meta name=\"description\" content=\"Learn which AWS services the North One team uses. This guide breaks down the differences, their favorites, and more.\" \/>\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.northone.com\/blog\/northone\/serverless-architecture\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building North One: What is Serverless Architecture? | North One\" \/>\n<meta property=\"og:description\" content=\"Learn which AWS services the North One team uses. This guide breaks down the differences, their favorites, and more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture\" \/>\n<meta property=\"og:site_name\" content=\"North One Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/northonebanking\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-01T20:31:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-08T12:40:18+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.northone.com\/blog\/wp-content\/uploads\/2022\/04\/BUILDING-NORTHONE_Serverless-Architecture.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"863\" \/>\n\t<meta property=\"og:image:height\" content=\"558\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alex Young\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@NorthOneApp\" \/>\n<meta name=\"twitter:site\" content=\"@NorthOneApp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Young\" \/>\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.northone.com\\\/blog\\\/northone\\\/serverless-architecture#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture\"},\"author\":{\"name\":\"Alex Young\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#\\\/schema\\\/person\\\/840e087de8d7d3f21702f8ba391efa91\"},\"headline\":\"Building North One: What Is Serverless Architecture and How Do We Use It\",\"datePublished\":\"2022-04-01T20:31:21+00:00\",\"dateModified\":\"2022-12-08T12:40:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture\"},\"wordCount\":2188,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/BUILDING-NORTHONE_Serverless-Architecture.jpg\",\"articleSection\":[\"North One\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture\",\"url\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture\",\"name\":\"Building North One: What is Serverless Architecture? | North One\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/BUILDING-NORTHONE_Serverless-Architecture.jpg\",\"datePublished\":\"2022-04-01T20:31:21+00:00\",\"dateModified\":\"2022-12-08T12:40:18+00:00\",\"description\":\"Learn which AWS services the North One team uses. This guide breaks down the differences, their favorites, and more.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#primaryimage\",\"url\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/BUILDING-NORTHONE_Serverless-Architecture.jpg\",\"contentUrl\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/BUILDING-NORTHONE_Serverless-Architecture.jpg\",\"width\":863,\"height\":558,\"caption\":\"Building NorthOne - Serverless Architecture\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/northone\\\/serverless-architecture#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.northone.com\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building North One: What Is Serverless Architecture and How Do We Use It\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/\",\"name\":\"North One Blog\",\"description\":\"North One Business Banking\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#organization\",\"name\":\"North One\",\"url\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/NorthOne-Icon.png\",\"contentUrl\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/NorthOne-Icon.png\",\"width\":1000,\"height\":1000,\"caption\":\"North One\"},\"image\":{\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/northonebanking\\\/\",\"https:\\\/\\\/x.com\\\/NorthOneApp\",\"https:\\\/\\\/ca.linkedin.com\\\/company\\\/northone\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/#\\\/schema\\\/person\\\/840e087de8d7d3f21702f8ba391efa91\",\"name\":\"Alex Young\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf33f3d5d6c9670557a6c89e567cbf354c2c070b0774011f5bc85236d17349b0?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf33f3d5d6c9670557a6c89e567cbf354c2c070b0774011f5bc85236d17349b0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf33f3d5d6c9670557a6c89e567cbf354c2c070b0774011f5bc85236d17349b0?s=96&d=mm&r=g\",\"caption\":\"Alex Young\"},\"url\":\"https:\\\/\\\/www.northone.com\\\/blog\\\/author\\\/alex\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building North One: What is Serverless Architecture? | North One","description":"Learn which AWS services the North One team uses. This guide breaks down the differences, their favorites, and more.","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.northone.com\/blog\/northone\/serverless-architecture","og_locale":"en_US","og_type":"article","og_title":"Building North One: What is Serverless Architecture? | North One","og_description":"Learn which AWS services the North One team uses. This guide breaks down the differences, their favorites, and more.","og_url":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture","og_site_name":"North One Blog","article_publisher":"https:\/\/www.facebook.com\/northonebanking\/","article_published_time":"2022-04-01T20:31:21+00:00","article_modified_time":"2022-12-08T12:40:18+00:00","og_image":[{"width":863,"height":558,"url":"http:\/\/www.northone.com\/blog\/wp-content\/uploads\/2022\/04\/BUILDING-NORTHONE_Serverless-Architecture.jpg","type":"image\/jpeg"}],"author":"Alex Young","twitter_card":"summary_large_image","twitter_creator":"@NorthOneApp","twitter_site":"@NorthOneApp","twitter_misc":{"Written by":"Alex Young","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#article","isPartOf":{"@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture"},"author":{"name":"Alex Young","@id":"https:\/\/www.northone.com\/blog\/#\/schema\/person\/840e087de8d7d3f21702f8ba391efa91"},"headline":"Building North One: What Is Serverless Architecture and How Do We Use It","datePublished":"2022-04-01T20:31:21+00:00","dateModified":"2022-12-08T12:40:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture"},"wordCount":2188,"commentCount":0,"publisher":{"@id":"https:\/\/www.northone.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#primaryimage"},"thumbnailUrl":"https:\/\/www.northone.com\/blog\/wp-content\/uploads\/2022\/04\/BUILDING-NORTHONE_Serverless-Architecture.jpg","articleSection":["North One"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture","url":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture","name":"Building North One: What is Serverless Architecture? | North One","isPartOf":{"@id":"https:\/\/www.northone.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#primaryimage"},"image":{"@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#primaryimage"},"thumbnailUrl":"https:\/\/www.northone.com\/blog\/wp-content\/uploads\/2022\/04\/BUILDING-NORTHONE_Serverless-Architecture.jpg","datePublished":"2022-04-01T20:31:21+00:00","dateModified":"2022-12-08T12:40:18+00:00","description":"Learn which AWS services the North One team uses. This guide breaks down the differences, their favorites, and more.","breadcrumb":{"@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.northone.com\/blog\/northone\/serverless-architecture"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#primaryimage","url":"https:\/\/www.northone.com\/blog\/wp-content\/uploads\/2022\/04\/BUILDING-NORTHONE_Serverless-Architecture.jpg","contentUrl":"https:\/\/www.northone.com\/blog\/wp-content\/uploads\/2022\/04\/BUILDING-NORTHONE_Serverless-Architecture.jpg","width":863,"height":558,"caption":"Building NorthOne - Serverless Architecture"},{"@type":"BreadcrumbList","@id":"https:\/\/www.northone.com\/blog\/northone\/serverless-architecture#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.northone.com\/blog"},{"@type":"ListItem","position":2,"name":"Building North One: What Is Serverless Architecture and How Do We Use It"}]},{"@type":"WebSite","@id":"https:\/\/www.northone.com\/blog\/#website","url":"https:\/\/www.northone.com\/blog\/","name":"North One Blog","description":"North One Business Banking","publisher":{"@id":"https:\/\/www.northone.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.northone.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.northone.com\/blog\/#organization","name":"North One","url":"https:\/\/www.northone.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.northone.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.northone.com\/blog\/wp-content\/uploads\/2019\/07\/NorthOne-Icon.png","contentUrl":"https:\/\/www.northone.com\/blog\/wp-content\/uploads\/2019\/07\/NorthOne-Icon.png","width":1000,"height":1000,"caption":"North One"},"image":{"@id":"https:\/\/www.northone.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/northonebanking\/","https:\/\/x.com\/NorthOneApp","https:\/\/ca.linkedin.com\/company\/northone"]},{"@type":"Person","@id":"https:\/\/www.northone.com\/blog\/#\/schema\/person\/840e087de8d7d3f21702f8ba391efa91","name":"Alex Young","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cf33f3d5d6c9670557a6c89e567cbf354c2c070b0774011f5bc85236d17349b0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cf33f3d5d6c9670557a6c89e567cbf354c2c070b0774011f5bc85236d17349b0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf33f3d5d6c9670557a6c89e567cbf354c2c070b0774011f5bc85236d17349b0?s=96&d=mm&r=g","caption":"Alex Young"},"url":"https:\/\/www.northone.com\/blog\/author\/alex"}]}},"wps_subtitle":"","_links":{"self":[{"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/posts\/3108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/comments?post=3108"}],"version-history":[{"count":0,"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/posts\/3108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/media\/3105"}],"wp:attachment":[{"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/media?parent=3108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/categories?post=3108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.northone.com\/blog\/wp-json\/wp\/v2\/tags?post=3108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}