"use strict";(self.webpackChunkfoomo=self.webpackChunkfoomo||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"generalSidebar":[{"type":"link","label":"General guide","href":"/docs/general/","docId":"general/index"},{"type":"category","label":"Setup","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Workplace","href":"/docs/general/setup/workplace","docId":"general/setup/workplace"},{"type":"link","label":"Computer","href":"/docs/general/setup/computer","docId":"general/setup/computer"}]},{"type":"category","label":"Work","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Working as a software developer","href":"/docs/general/work/general","docId":"general/work/general"},{"type":"link","label":"Working remotely","href":"/docs/general/work/remote-work","docId":"general/work/remote-work"}]},{"type":"link","label":"Package managers","href":"/docs/general/package-managers","docId":"general/package-managers"},{"type":"category","label":"Technologies","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SSE Server Sent Events","href":"/docs/general/technologies/sse","docId":"general/technologies/SSE"}]},{"type":"link","label":"(Random) essentials","href":"/docs/general/essentials","docId":"general/essentials"},{"type":"link","label":"Security","href":"/docs/general/security","docId":"general/security"},{"type":"category","label":"utilities","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"k9s","href":"/docs/general/utilities/k9s","docId":"general/utilities/k9s"}]}],"backendSidebar":[{"type":"link","label":"Backend Guide","href":"/docs/backend/","docId":"backend/index"},{"type":"link","label":"RTFM","href":"/docs/backend/rtfm","docId":"backend/rtfm"},{"type":"link","label":"Setup","href":"/docs/backend/setup","docId":"backend/setup"},{"type":"category","label":"Go by example","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Defer","href":"/docs/backend/go-by-example/defer","docId":"backend/go-by-example/defer"},{"type":"link","label":"Panic and Recover","href":"/docs/backend/go-by-example/panic-and-recover","docId":"backend/go-by-example/panic-and-recover"},{"type":"link","label":"Maps","href":"/docs/backend/go-by-example/nil-maps","docId":"backend/go-by-example/nil-maps"},{"type":"link","label":"Ranging and Looping","href":"/docs/backend/go-by-example/ranging","docId":"backend/go-by-example/ranging"},{"type":"link","label":"CLI applications","href":"/docs/backend/go-by-example/cli-applications","docId":"backend/go-by-example/cli-applications"},{"type":"link","label":"Context","href":"/docs/backend/go-by-example/context","docId":"backend/go-by-example/context"},{"type":"link","label":"Embed","href":"/docs/backend/go-by-example/embed","docId":"backend/go-by-example/embed"},{"type":"link","label":"Files","href":"/docs/backend/go-by-example/files","docId":"backend/go-by-example/files"},{"type":"link","label":"Go Routines and Channels","href":"/docs/backend/go-by-example/goroutines-and-channels","docId":"backend/go-by-example/goroutines-and-channels"},{"type":"link","label":"HTTP Client and Server","href":"/docs/backend/go-by-example/http","docId":"backend/go-by-example/http"},{"type":"link","label":"Interfaces","href":"/docs/backend/go-by-example/interfaces","docId":"backend/go-by-example/interfaces"},{"type":"link","label":"Map Races","href":"/docs/backend/go-by-example/map-racing","docId":"backend/go-by-example/map-racing"},{"type":"link","label":"MongoDB","href":"/docs/backend/go-by-example/mongodb","docId":"backend/go-by-example/mongodb"},{"type":"link","label":"Reflection","href":"/docs/backend/go-by-example/reflection","docId":"backend/go-by-example/reflection"},{"type":"link","label":"Type Casting","href":"/docs/backend/go-by-example/type-casting","docId":"backend/go-by-example/type-casting"},{"type":"link","label":"waitgroups","href":"/docs/backend/go-by-example/waitgroups","docId":"backend/go-by-example/waitgroups"},{"type":"link","label":"Yaml magic","href":"/docs/backend/go-by-example/yaml-magic","docId":"backend/go-by-example/yaml-magic"}]},{"type":"link","label":"Gograpple","href":"/docs/backend/gograpple","docId":"backend/gograpple"}],"frontendSidebar":[{"type":"link","label":"Frontend Guide","href":"/docs/frontend/","docId":"frontend/index"},{"type":"link","label":"CSS","href":"/docs/frontend/css","docId":"frontend/css"},{"type":"link","label":"RTFM","href":"/docs/frontend/rtfm","docId":"frontend/rtfm"},{"type":"link","label":"Setup","href":"/docs/frontend/setup","docId":"frontend/setup"},{"type":"link","label":"Stack","href":"/docs/frontend/stack","docId":"frontend/stack"},{"type":"link","label":"Performance","href":"/docs/frontend/performance","docId":"frontend/performance"},{"type":"category","label":"TypeScript","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Objects","href":"/docs/frontend/typescript/objects","docId":"frontend/typescript/objects"},{"type":"link","label":"Spreading","href":"/docs/frontend/typescript/spreading","docId":"frontend/typescript/spreading"}]},{"type":"link","label":"Debugging in JavaScript","href":"/docs/frontend/debugging_js","docId":"frontend/debugging_js"},{"type":"link","label":"Pittfals","href":"/docs/frontend/pitfalls","docId":"frontend/pitfalls"},{"type":"link","label":"vscode","href":"/docs/frontend/vscode","docId":"frontend/vscode"}],"devopsSidebar":[{"type":"link","label":"Devops Guide","href":"/docs/devops/","docId":"devops/index"},{"type":"category","label":"Kubernetes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Spot Instance Node Pools","href":"/docs/devops/kubernetes/spot-instance-node-pools","docId":"devops/kubernetes/spot-instance-node-pools"}]},{"type":"link","label":"k8s","href":"/docs/devops/k8s","docId":"devops/k8s"},{"type":"category","label":"Monitoring","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/docs/devops/monitoring/intro","docId":"devops/monitoring/intro"},{"type":"link","label":"Grafana","href":"/docs/devops/monitoring/grafana","docId":"devops/monitoring/grafana"},{"type":"link","label":"Jaeger","href":"/docs/devops/monitoring/jaeger","docId":"devops/monitoring/jaeger"}]},{"type":"category","label":"Infrastructure","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Conventions","href":"/docs/devops/infrastructure/conventions","docId":"devops/infrastructure/conventions"}]},{"type":"link","label":"Bookmarks","href":"/docs/devops/bookmarks","docId":"devops/bookmarks"}],"projectsSidebar":[{"type":"link","label":"Overview","href":"/docs/projects/","docId":"projects/index"},{"type":"link","label":"Architecture","href":"/docs/projects/architecture","docId":"projects/architecture"},{"type":"category","label":"CMS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"contentserver","href":"/docs/projects/cms/contentserver","docId":"projects/cms/contentserver"},{"type":"link","label":"contentful","href":"/docs/projects/cms/contentful","docId":"projects/cms/contentful"},{"type":"category","label":"Gocontentful","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting started","href":"/docs/projects/cms/gocontentful/getting-started","docId":"projects/cms/gocontentful/getting-started"},{"type":"link","label":"Play with the test API","href":"/docs/projects/cms/gocontentful/test-api","docId":"projects/cms/gocontentful/test-api"},{"type":"link","label":"Working with the Gocontentful API","href":"/docs/projects/cms/gocontentful/working-with-gocontentful-api","docId":"projects/cms/gocontentful/working-with-gocontentful-api"},{"type":"link","label":"Caching","href":"/docs/projects/cms/gocontentful/caching","docId":"projects/cms/gocontentful/caching"},{"type":"link","label":"API Reference","href":"/docs/projects/cms/gocontentful/api-reference","docId":"projects/cms/gocontentful/api-reference"}],"href":"/docs/projects/cms/gocontentful/"}],"href":"/docs/projects/cms/"},{"type":"link","label":"gograpple","href":"/docs/projects/gograpple","docId":"projects/gograpple"},{"type":"category","label":"gotsrpc","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting started","href":"/docs/projects/gotsrpc/getting-started","docId":"projects/gotsrpc/getting-started"},{"type":"category","label":"cli","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"gotsrpc.yaml","href":"/docs/projects/gotsrpc/cli/gotsrpc.yaml","docId":"projects/gotsrpc/cli/gotsrpc.yaml"}],"href":"/docs/projects/gotsrpc/cli/"},{"type":"link","label":"Workflow","href":"/docs/projects/gotsrpc/workflow","docId":"projects/gotsrpc/workflow"},{"type":"category","label":"Service Interfaces","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Value Objects","href":"/docs/projects/gotsrpc/service-interfaces/value-objects","docId":"projects/gotsrpc/service-interfaces/value-objects"},{"type":"link","label":"Errors","href":"/docs/projects/gotsrpc/service-interfaces/errors","docId":"projects/gotsrpc/service-interfaces/errors"}],"href":"/docs/projects/gotsrpc/service-interfaces/"},{"type":"link","label":"TypeScript client transport","href":"/docs/projects/gotsrpc/client-transport","docId":"projects/gotsrpc/client-transport"},{"type":"category","label":"Playground","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Hello, World!","href":"/docs/projects/gotsrpc/playground/hello-world","docId":"projects/gotsrpc/playground/hello-world"},{"type":"link","label":"Wheel of Fortune","href":"/docs/projects/gotsrpc/playground/wheel-of-fortune","docId":"projects/gotsrpc/playground/wheel-of-fortune"},{"type":"link","label":"Todos","href":"/docs/projects/gotsrpc/playground/todos","docId":"projects/gotsrpc/playground/todos"},{"type":"link","label":"Union Errors","href":"/docs/projects/gotsrpc/playground/union-errors","docId":"projects/gotsrpc/playground/union-errors"}],"href":"/docs/projects/gotsrpc/playground/"},{"type":"link","label":"Protocol","href":"/docs/projects/gotsrpc/protocol","docId":"projects/gotsrpc/protocol"}],"href":"/docs/projects/gotsrpc/"},{"type":"category","label":"libraries","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Circuit Breaker","href":"/docs/projects/libraries/keel-circuit-breaker","docId":"projects/libraries/keel-circuit-breaker"},{"type":"link","label":"keel","href":"/docs/projects/libraries/keel","docId":"projects/libraries/keel"}]},{"type":"link","label":"pagespeed exporter","href":"/docs/projects/pagespeed-exporter","docId":"projects/pagespeed-exporter"},{"type":"link","label":"webgrapple","href":"/docs/projects/webgrapple","docId":"projects/webgrapple"}]},"docs":{"backend/go-by-example/cli-applications":{"id":"backend/go-by-example/cli-applications","title":"CLI applications","description":"The following example has some modifications in order to run in the playground. The Go Playground does not allow flags to be passed so it\'s recommended you","sidebar":"backendSidebar"},"backend/go-by-example/context":{"id":"backend/go-by-example/context","title":"Context","description":"The `context` package in go provides a way for request-scoped values to be passed between all goroutines that are involved in handling a request.","sidebar":"backendSidebar"},"backend/go-by-example/defer":{"id":"backend/go-by-example/defer","title":"Defer","description":"In a normal Go application, control flows from the top to the bottom of any function that we call (this is if you don\'t use branching or looping).","sidebar":"backendSidebar"},"backend/go-by-example/embed":{"id":"backend/go-by-example/embed","title":"Embed","description":"https://gobyexample.com/embed-directive","sidebar":"backendSidebar"},"backend/go-by-example/files":{"id":"backend/go-by-example/files","title":"Files","description":"There are multiple packages we can utilize for reading files in a go program. We\'ll go over the most commonly used ones in this section.","sidebar":"backendSidebar"},"backend/go-by-example/goroutines-and-channels":{"id":"backend/go-by-example/goroutines-and-channels","title":"Go Routines and Channels","description":"Go Routines","sidebar":"backendSidebar"},"backend/go-by-example/http":{"id":"backend/go-by-example/http","title":"HTTP Client and Server","description":"The HTTP protocol is used to communicate between Client and Server. The `net/http` package provides all methods needed to implement a client and","sidebar":"backendSidebar"},"backend/go-by-example/interfaces":{"id":"backend/go-by-example/interfaces","title":"Interfaces","description":"In go you can define a type using a set of methods by using the `interface` keyword.","sidebar":"backendSidebar"},"backend/go-by-example/map-racing":{"id":"backend/go-by-example/map-racing","title":"Map Races","description":"","sidebar":"backendSidebar"},"backend/go-by-example/mongodb":{"id":"backend/go-by-example/mongodb","title":"MongoDB","description":"Make sure to use the official golang mongo driver:","sidebar":"backendSidebar"},"backend/go-by-example/nil-maps":{"id":"backend/go-by-example/nil-maps","title":"Maps","description":"Maps are unordered key value pairs where each key is unique.","sidebar":"backendSidebar"},"backend/go-by-example/panic-and-recover":{"id":"backend/go-by-example/panic-and-recover","title":"Panic and Recover","description":"Panic","sidebar":"backendSidebar"},"backend/go-by-example/ranging":{"id":"backend/go-by-example/ranging","title":"Ranging and Looping","description":"