<svg width="110" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)" fill="#000"><path d="M79.42 9.335c0-.484.523-.672 1.085-.672.908 0 1.769.282 1.769.282V7.628c-.59-.174-1.193-.241-1.89-.241-1.528 0-2.6.725-2.6 1.908 0 2.299 3.162 1.708 3.162 2.823 0 .551-.495.7-1.218.7-.51 0-1.327-.2-1.916-.406v1.304c.49.195 1.18.378 1.862.378 1.487 0 2.907-.444 2.907-2.043 0-2.218-3.162-1.64-3.162-2.715l.001-.001Zm8.337 1.345c0-1.491.817-2.003 1.783-2.003.643 0 1.32.19 1.774.364V7.696c-.536-.174-1.01-.31-1.802-.31-2.104 0-3.404 1.291-3.404 3.375 0 1.975.938 3.333 3.31 3.333.75 0 1.333-.148 1.976-.364v-1.317c-.723.282-1.279.39-1.775.39-1.044 0-1.862-.484-1.862-2.124v.001ZM42.273 8.596h-.054V7.548h-1.474v6.384h1.581v-3.804c.496-.94 1.099-1.25 2.105-1.25h.16V7.494s-.227-.027-.428-.027c-.858 0-1.448.336-1.89 1.13Zm19.837 0h-.053V7.548h-1.474v6.384h1.58v-3.804c.497-.94 1.1-1.25 2.105-1.25h.16V7.494s-.227-.027-.428-.027c-.857 0-1.447.336-1.889 1.13Zm45.76-1.21c-.682 0-1.46.377-2.171.848l-.187.12c-.335-.712-1.005-.967-1.742-.967-.683 0-1.461.35-2.171.82v-.66h-1.501v6.385h1.594V9.35c.59-.39 1.219-.632 1.676-.632.523 0 .844.282.844 1.183v4.032h1.581v-4.57c.59-.39 1.219-.645 1.676-.645.523 0 .845.282.845 1.183v4.032h1.581V9.524c0-1.237-.738-2.137-2.024-2.137h-.001Zm-12.262 5.431c-1.032 0-1.58-.671-1.58-2.07 0-1.398.548-2.07 1.58-2.07s1.568.673 1.568 2.07c0 1.398-.536 2.07-1.568 2.07Zm0-5.43c-2.184 0-3.216 1.411-3.216 3.36 0 1.95 1.032 3.347 3.216 3.347s3.216-1.399 3.216-3.347-1.045-3.36-3.216-3.36ZM73.664 9.336c0-.484.523-.672 1.086-.672.907 0 1.768.282 1.768.282V7.63c-.59-.174-1.193-.241-1.889-.241-1.527 0-2.6.725-2.6 1.908 0 2.299 3.163 1.708 3.163 2.823 0 .551-.496.7-1.22.7-.508 0-1.325-.2-1.915-.406v1.304c.491.195 1.178.378 1.862.378 1.487 0 2.908-.444 2.908-2.043 0-2.218-3.163-1.64-3.163-2.715v-.001Zm-6.86.7c.094-.887.576-1.452 1.366-1.452.845 0 1.099.673 1.099 1.452h-2.466Zm1.38-2.648c-2.037 0-3.096 1.586-3.096 3.32 0 2.38 1.245 3.387 3.267 3.387.817 0 1.523-.109 2.347-.363v-1.32c-.664.244-1.263.391-1.905.391-1.178 0-1.967-.323-2.008-1.72h4.074c.027-.256.054-.497.054-.94 0-1.345-.71-2.756-2.734-2.756ZM56.3 9.483h-1.254V6.257H56.3c1.019 0 1.527.564 1.527 1.573s-.469 1.653-1.527 1.653Zm-.013-4.556h-2.928v9.004h1.688V10.8h1.24c1.916 0 3.31-1.035 3.31-2.97 0-1.935-1.394-2.903-3.31-2.903ZM49.82 12.09c-.51.47-.992.725-1.5.725-.871 0-1.435-.578-1.435-1.935 0-1.465.697-2.231 1.903-2.231.375 0 .764.094 1.032.202v3.239Zm0-4.557c-.47-.094-.805-.149-1.193-.149-2.184 0-3.377 1.466-3.377 3.603 0 2.137 1.193 3.105 2.6 3.105.697 0 1.54-.323 2.05-.753v.591h1.5V4.926h-1.58v2.608Zm-13.565 5.282c-1.031 0-1.58-.671-1.58-2.07 0-1.398.549-2.07 1.58-2.07 1.032 0 1.569.673 1.569 2.07 0 1.397-.537 2.07-1.569 2.07Zm0-5.43c-2.184 0-3.216 1.41-3.216 3.36s1.032 3.347 3.216 3.347c2.185 0 3.216-1.399 3.216-3.347s-1.044-3.36-3.215-3.36Zm47.372 6.545h1.587v-1.64h-1.587v1.64ZM31.608 4.926 29.82 11.82 28.03 4.926h-1.805l.42 1.477-1.575 5.65-1.712-7.128H21.62l2.441 9.005h1.892l1.462-4.815 1.37 4.815h1.892l2.563-9.005h-1.634.001ZM8.973 0C4.025 0 0 4.037 0 9s4.025 9 8.973 9 8.973-4.038 8.973-9-4.026-9-8.973-9ZM.906 9c0-1.173.25-2.287.698-3.293l3.849 10.575A8.095 8.095 0 0 1 .906 9Zm8.067 8.092a8.052 8.052 0 0 1-2.28-.329l2.42-7.055 2.48 6.814c.017.04.037.076.059.112a8.02 8.02 0 0 1-2.68.458Zm1.111-11.885a16 16 0 0 0 .924-.077c.435-.052.383-.693-.051-.667 0 0-1.307.103-2.15.103-.793 0-2.126-.103-2.126-.103-.435-.026-.485.64-.051.667 0 0 .411.052.846.077L8.733 8.66l-1.766 5.311L4.03 5.206c.486-.026.924-.077.924-.077.434-.052.383-.693-.052-.667 0 0-1.306.103-2.15.103-.151 0-.33-.004-.519-.01A8.049 8.049 0 0 1 14.42 3.033c-.035-.003-.069-.007-.105-.007-.792 0-1.355.693-1.355 1.436 0 .667.384 1.231.792 1.897.307.54.666 1.232.666 2.232 0 .692-.266 1.496-.614 2.615l-.806 2.697-2.915-8.698.002.002Zm5.967-.088a8.077 8.077 0 0 1 .989 3.882 8.09 8.09 0 0 1-4.012 6.994l2.464-7.146c.461-1.155.614-2.078.614-2.9 0-.297-.02-.573-.055-.831v.001Z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h109.895v18H0z"/></clipPath></defs></svg>{"id":15958,"date":"2022-04-29T06:43:55","date_gmt":"2022-04-29T10:43:55","guid":{"rendered":"https:\/\/pley2win.com\/featured-news\/delivering-large-scale-platform-reliability-roblox-blog\/"},"modified":"2022-04-29T06:43:55","modified_gmt":"2022-04-29T10:43:55","slug":"delivering-large-scale-platform-reliability-roblox-blog","status":"publish","type":"post","link":"https:\/\/pley2win.com\/?p=15958","title":{"rendered":"Delivering Large-Scale Platform Reliability &#8211; Roblox Blog"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p><span style=\"font-weight: 400;\">Running any scalable distributed platform demands a commitment to reliability, to ensure customers have what they need when they need it. The dependencies could be rather intricate, especially with a platform as big as Roblox. <\/span><i><span style=\"font-weight: 400;\">Building reliable services means that, regardless of the complexity and status of dependencies, any given service will not be interrupted (i.e. highly <\/span><\/i><b><i>available<\/i><\/b><i><span style=\"font-weight: 400;\">), will operate bug-free (i.e. high <\/span><\/i><b><i>quality<\/i><\/b><i><span style=\"font-weight: 400;\">) and without errors (i.e. <\/span><\/i><b><i>fault tolerance<\/i><\/b><i><span style=\"font-weight: 400;\">).<\/span><\/i><\/p>\n<h2><b>Why Reliability Matters<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Our Account Identity team is committed to reaching higher reliability, since the compliance services we built are core components to the platform. Broken compliance can have severe consequences. The cost of blocking Roblox\u2019s natural operation is very high, with additional resources necessary to recover after a failure and a weakened user experience.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The typical approach to reliability focuses primarily on availability, but in some cases terms are mixed and misused. Most measurements for availability just assess whether services are up and running, while aspects such as partition tolerance and consistency are sometimes forgotten or misunderstood.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In accordance with the CAP theorem, any distributed system can only guarantee two out of these three aspects, so our compliance services sacrifice some consistency in order to be highly available and partition-tolerant. Nevertheless, our services sacrificed little and found mechanisms to achieve good consistency with reasonable architectural changes explained below.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The process to reach higher reliability is iterative, with tight measurement matching continuous work in order to prevent, find, detect and fix defects before incidents occur. Our team identified strong value in the following practices:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Right measurement<\/span><span style=\"font-weight: 400;\"> \u2013 Build full observability around how quality is delivered to customers and how dependencies deliver quality to us.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Proactive anticipation<\/span><span style=\"font-weight: 400;\"> \u2013 Perform activities such as architectural reviews and dependency risk assessments.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Prioritize correction<\/span><span style=\"font-weight: 400;\"> \u2013 Bring higher attention to incident report resolution for the service and dependencies that are linked to our service.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Building higher reliability demands a culture of quality. Our team was already investing in performance-driven development and knows the success of a process depends upon its adoption. The team adopted this process in full and applied the practices as a standard. The following diagram highlights the components of the process:<\/span><\/p>\n<div align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-41196 size-full\" src=\"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/unnamed.jpeg\" alt=\"\" width=\"480\" height=\"512\" srcset=\"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/unnamed.jpeg 480w, https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/unnamed-281x300.jpeg 281w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\"\/><\/div>\n<h2><b>The Power of Right Measurement<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Before diving deeper into metrics, there is a quick clarification to make regarding Service Level measurements.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">SLO (Service Level Objective) is the reliability objective that our team aims for (i.e. 99.999%).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">SLI (Service Level Indicator) is the achieved reliability given a timeframe (i.e. 99.975% last February).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">SLA (Service Level Agreement) is the reliability agreed to deliver and be expected by our consumers at a given timeframe (i.e. 99.99% a week).<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The SLI should reflect the availability (no unhandled or missing responses), the failure tolerance (no service errors) and quality attained (no unexpected errors). Therefore, we defined our SLI as the \u201cSuccess Ratio\u201d of successful responses compared to the total requests sent to a service. Successful responses are those requests that were dispatched in time and form, meaning no <\/span><span style=\"font-weight: 400;\">connectivity, service or unexpected errors happened.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This SLI or Success Ratio is collected from the consumers\u2019 point of view (i.e., clients). The intention is to measure the actual end-to-end experience delivered to our consumers so that we feel confident SLAs are met. Not doing so would create a false sense of reliability that ignores all infrastructure concerns to connect with our clients. Similar to the consumer SLI, we collect the dependency SLI to track any potential risk. In practice, all dependency SLAs should align with the service SLA and there is a direct dependency with them. The failure of one implies the failure of all. We also track and report metrics from the service itself (i.e., server) but this is not the practical source for high reliability.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition to the SLIs, every build collects quality metrics that are reported by our CI workflow. This practice helps to strongly enforce quality gates (i.e., code coverage) and report other meaningful metrics, such as coding standard compliance and static code analysis. This topic was previously covered in another article, <\/span><span style=\"font-weight: 400;\">Building Microservices Driven by Performance<\/span><span style=\"font-weight: 400;\">. Diligent observance of quality adds up when talking about reliability, because the more we invest in reaching excellent scores, the more confident we are that the system will not fail during adverse conditions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our team has two dashboards. One delivers all visibility into both the Consumers SLI and Dependencies SLI. The second one shows all quality metrics. We are working on merging everything into a single dashboard, so that all of the aspects we care about are consolidated and ready to be reported by any given timeframe.<\/span><\/p>\n<h2><b>Anticipate Failure<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Doing <\/span><b>Architectural Reviews <\/b><span style=\"font-weight: 400;\">is a fundamental part of being reliable. First, we determine whether redundancy is present and if the service has the means to survive when dependencies go down. Beyond the typical replication ideas, most of our services applied improved dual cache hydration techniques, dual recovery strategies (such as failover local queues), or data loss strategies (such as transactional support). These topics are extensive enough to warrant another blog entry, but ultimately the best recommendation is to implement ideas that consider disaster scenarios and minimize any performance penalty.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Another important aspect to anticipate is anything that could improve connectivity. That means being aggressive about low latency for clients and preparing them for very high traffic using cache-control techniques, sidecars and performant policies for timeouts, circuit breakers and retries. These practices apply to any client including caches, stores, queues and interdependent clients in HTTP and gRPC. It also means improving healthy signals from the services and understanding that health checks play an important role in all container orchestration. Most of our services do better signals for degradation as part of the health check feedback and verify all critical components are functional before sending healthy signals.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Breaking down services into critical and non-critical pieces has proven useful for focusing on the functionality that matters the most. We used to have admin-only endpoints in the same service, and while they were not used often they impacted the overall latency metrics. Moving them to their own service impacted every metric in a positive direction.<\/span><\/p>\n<p><b>Dependency Risk Assessment<\/b><span style=\"font-weight: 400;\"> is an important tool to identify potential problems with dependencies. This means we identify dependencies with low SLI and ask for SLA alignment. Those dependencies need special attention during integration steps so we commit extra time to benchmark and test if the new dependencies are mature enough for our plans. One good example is the early adoption we had for the Roblox Storage-as-a-Service. The integration with this service required filing bug tickets and periodic sync meetings to communicate findings and feedback. All of this work uses the \u201creliability\u201d tag so we can quickly identify its source and priorities. Characterization happened often until we had the confidence that the new dependency was ready for us. This extra work helped to pull the dependency to the required level of reliability we expect to deliver acting together for a common goal.<\/span><\/p>\n<h2><b>Bring Structure to Chaos<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">It is never desirable to have incidents. But when they happen, there is meaningful information to collect and learn from in order to be more reliable. Our team has a team incident report that is created above and beyond the typical company-wide report, so we focus on all incidents regardless of the scale of their impact. We call out the root cause and prioritize all work to mitigate it in the future. As part of this report, we call in other teams to fix dependency incidents with high priority, follow up with proper resolution, retrospect and look for patterns that may apply to us.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The team produces a <\/span><b>Monthly Reliability Report per Service<\/b><span style=\"font-weight: 400;\"> that includes all the SLIs explained here, any tickets we have opened because of reliability and any possible incidents associated with the service. We are so used to generating these reports that the next natural step is to automate their extraction. Doing this periodic activity is important, and it is a reminder that reliability is constantly being tracked and considered in our development.<\/span><\/p>\n<div align=\"center\">\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-41207\" src=\"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/unnamed_2.jpeg\" alt=\"\" width=\"380\" height=\"583\" srcset=\"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/unnamed_2.jpeg 334w, https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/unnamed_2-196x300.jpeg 196w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\"\/><\/p>\n<\/div>\n<p><span style=\"font-weight: 400;\">Our instrumentation includes custom metrics and improved alerts so that we are paged as soon as possible when known and expected problems occur. All alerts, including false positives, are reviewed every week. At this point, polishing all documentation is important so our consumers know what to expect when alerts trigger and when errors occur, and then everyone knows what to do (e.g., playbooks and integration guidelines are aligned and updated often).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ultimately, <\/span><i><span style=\"font-weight: 400;\">the adoption of quality in our culture is the most critical and decisive factor in reaching higher reliability<\/span><\/i><span style=\"font-weight: 400;\">. We can observe how these practices applied to our day-to-day work are already paying off. Our team is obsessed with reliability and it is our most important achievement. We have increased our awareness of the impact that potential defects could have and when they could be introduced. Services that implemented these practices have consistently reached their SLOs and SLAs. The reliability reports that help us track all the work we have been doing are a testament to the work our team has done, and stand as invaluable lessons to inform and influence other teams. This is how the reliability culture touches all components of our platform.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The road to higher reliability is not an easy one, but it is necessary if you want to build a trusted platform that reimagines how people come together.<\/span><\/p>\n<hr\/>\n<p><span style=\"font-weight: 400;\">Alberto is a Principal Software Engineer on the Account Identity team at Roblox. He\u2019s been in the game industry a long time, with credits on many AAA game titles and social media platforms with a strong focus on highly scalable architectures. Now he\u2019s helping Roblox reach growth and maturity by applying best development practices.<\/span><\/p>\n<p>\u00a0<\/p>\n<\/p><\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.roblox.com\/2022\/04\/delivering-large-scale-platform-reliability\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Running any scalable distributed platform demands a commitment to reliability, to ensure customers have what they need when they need it. The dependencies could be rather intricate, especially with a platform as big as Roblox. Building reliable services means that, regardless of the complexity and status of dependencies, any given service will not be interrupted [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":15959,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg","fifu_image_alt":"","footnotes":""},"categories":[567],"tags":[],"class_list":["post-15958","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Delivering Large-Scale Platform Reliability - Roblox Blog - Gaming News<\/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:\/\/pley2win.com\/?p=15958\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Delivering Large-Scale Platform Reliability - Roblox Blog - Gaming News\" \/>\n<meta property=\"og:description\" content=\"Running any scalable distributed platform demands a commitment to reliability, to ensure customers have what they need when they need it. The dependencies could be rather intricate, especially with a platform as big as Roblox. Building reliable services means that, regardless of the complexity and status of dependencies, any given service will not be interrupted [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pley2win.com\/?p=15958\" \/>\n<meta property=\"og:site_name\" content=\"Gaming News\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-29T10:43:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg\" \/>\n<meta name=\"author\" content=\"pley2win\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pley2win\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Delivering Large-Scale Platform Reliability - Roblox Blog - Gaming News","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:\/\/pley2win.com\/?p=15958","og_locale":"en_US","og_type":"article","og_title":"Delivering Large-Scale Platform Reliability - Roblox Blog - Gaming News","og_description":"Running any scalable distributed platform demands a commitment to reliability, to ensure customers have what they need when they need it. The dependencies could be rather intricate, especially with a platform as big as Roblox. Building reliable services means that, regardless of the complexity and status of dependencies, any given service will not be interrupted [&hellip;]","og_url":"https:\/\/pley2win.com\/?p=15958","og_site_name":"Gaming News","article_published_time":"2022-04-29T10:43:55+00:00","og_image":[{"url":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg","type":"","width":"","height":""}],"author":"pley2win","twitter_card":"summary_large_image","twitter_image":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg","twitter_misc":{"Written by":"pley2win","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pley2win.com\/?p=15958#article","isPartOf":{"@id":"https:\/\/pley2win.com\/?p=15958"},"author":{"name":"pley2win","@id":"https:\/\/pley2win.com\/#\/schema\/person\/abf11620d7b4805f5f298fb9c0a56d0d"},"headline":"Delivering Large-Scale Platform Reliability &#8211; Roblox Blog","datePublished":"2022-04-29T10:43:55+00:00","mainEntityOfPage":{"@id":"https:\/\/pley2win.com\/?p=15958"},"wordCount":1630,"commentCount":0,"publisher":{"@id":"https:\/\/pley2win.com\/#\/schema\/person\/abf11620d7b4805f5f298fb9c0a56d0d"},"image":{"@id":"https:\/\/pley2win.com\/?p=15958#primaryimage"},"thumbnailUrl":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg","articleSection":["Featured News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pley2win.com\/?p=15958#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pley2win.com\/?p=15958","url":"https:\/\/pley2win.com\/?p=15958","name":"Delivering Large-Scale Platform Reliability - Roblox Blog - Gaming News","isPartOf":{"@id":"https:\/\/pley2win.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pley2win.com\/?p=15958#primaryimage"},"image":{"@id":"https:\/\/pley2win.com\/?p=15958#primaryimage"},"thumbnailUrl":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg","datePublished":"2022-04-29T10:43:55+00:00","breadcrumb":{"@id":"https:\/\/pley2win.com\/?p=15958#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pley2win.com\/?p=15958"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pley2win.com\/?p=15958#primaryimage","url":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg","contentUrl":"https:\/\/blog.roblox.com\/wp-content\/uploads\/2022\/04\/AccountIdentity1_abstract-1.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/pley2win.com\/?p=15958#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pley2win.com\/"},{"@type":"ListItem","position":2,"name":"Delivering Large-Scale Platform Reliability &#8211; Roblox Blog"}]},{"@type":"WebSite","@id":"https:\/\/pley2win.com\/#website","url":"https:\/\/pley2win.com\/","name":"Gaming News","description":"Video Gaming News","publisher":{"@id":"https:\/\/pley2win.com\/#\/schema\/person\/abf11620d7b4805f5f298fb9c0a56d0d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pley2win.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/pley2win.com\/#\/schema\/person\/abf11620d7b4805f5f298fb9c0a56d0d","name":"pley2win","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pley2win.com\/wp-content\/uploads\/2022\/03\/Main-logo-.png","url":"https:\/\/pley2win.com\/wp-content\/uploads\/2022\/03\/Main-logo-.png","contentUrl":"https:\/\/pley2win.com\/wp-content\/uploads\/2022\/03\/Main-logo-.png","width":700,"height":250,"caption":"pley2win"},"logo":{"@id":"https:\/\/pley2win.com\/wp-content\/uploads\/2022\/03\/Main-logo-.png"},"sameAs":["http:\/\/www.pley2win.com"],"url":"https:\/\/pley2win.com\/?author=3"}]}},"_links":{"self":[{"href":"https:\/\/pley2win.com\/index.php?rest_route=\/wp\/v2\/posts\/15958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pley2win.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pley2win.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pley2win.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/pley2win.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15958"}],"version-history":[{"count":0,"href":"https:\/\/pley2win.com\/index.php?rest_route=\/wp\/v2\/posts\/15958\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pley2win.com\/index.php?rest_route=\/wp\/v2\/media\/15959"}],"wp:attachment":[{"href":"https:\/\/pley2win.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15958"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pley2win.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15958"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pley2win.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}