mirror of
https://github.com/foomo/foomo-docs.git
synced 2025-10-16 12:35:40 +00:00
1 line
27 KiB
JavaScript
1 line
27 KiB
JavaScript
"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"},{"type":"link","label":"Playground","href":"/docs/projects/gotsrpc/playground/playground","docId":"projects/gotsrpc/playground/playground"}],"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":"<GoPlayground","sidebar":"backendSidebar"},"backend/go-by-example/reflection":{"id":"backend/go-by-example/reflection","title":"Reflection","description":"In go variables have a static type.","sidebar":"backendSidebar"},"backend/go-by-example/type-casting":{"id":"backend/go-by-example/type-casting","title":"Type Casting","description":"<GoPlayground","sidebar":"backendSidebar"},"backend/go-by-example/waitgroups":{"id":"backend/go-by-example/waitgroups","title":"waitgroups","description":"","sidebar":"backendSidebar"},"backend/go-by-example/yaml-magic":{"id":"backend/go-by-example/yaml-magic","title":"Yaml magic","description":"<GoPlayground","sidebar":"backendSidebar"},"backend/gograpple":{"id":"backend/gograpple","title":"Gograpple","description":"","sidebar":"backendSidebar"},"backend/index":{"id":"backend/index","title":"Backend Guide","description":"<GoPlayground","sidebar":"backendSidebar"},"backend/rtfm":{"id":"backend/rtfm","title":"External documentation resources","description":"go","sidebar":"backendSidebar"},"backend/setup":{"id":"backend/setup","title":"setup your workspace","description":"","sidebar":"backendSidebar"},"devops/bookmarks":{"id":"devops/bookmarks","title":"Bookmarks","description":"- https://k8s.af/","sidebar":"devopsSidebar"},"devops/index":{"id":"devops/index","title":"Devops Guide","description":"How to run apps with foomo in the cloud","sidebar":"devopsSidebar"},"devops/infrastructure/conventions":{"id":"devops/infrastructure/conventions","title":"Conventions","description":"When creating resources the most important thing is to be consistent.","sidebar":"devopsSidebar"},"devops/k8s":{"id":"devops/k8s","title":"k8s kubernetes","description":"","sidebar":"devopsSidebar"},"devops/kubernetes/spot-instance-node-pools":{"id":"devops/kubernetes/spot-instance-node-pools","title":"Spot Instance Node Pools","description":"Setting up spot instance node pools is a great way to save money on stateless applications","sidebar":"devopsSidebar"},"devops/monitoring/grafana":{"id":"devops/monitoring/grafana","title":"Grafana","description":"","sidebar":"devopsSidebar"},"devops/monitoring/intro":{"id":"devops/monitoring/intro","title":"Monitoring and Alerting","description":"","sidebar":"devopsSidebar"},"devops/monitoring/jaeger":{"id":"devops/monitoring/jaeger","title":"Jaeger","description":"","sidebar":"devopsSidebar"},"frontend/css":{"id":"frontend/css","title":"CSS","description":"About","sidebar":"frontendSidebar"},"frontend/debugging_js":{"id":"frontend/debugging_js","title":"Debugging in JavaScript","description":"Debugging experience is very important because it can save you hours of depressing search for a bug.","sidebar":"frontendSidebar"},"frontend/index":{"id":"frontend/index","title":"Frontend Guide","description":"In this section you will find a guide on how to develop frontends with the foomo stack. Please also see the general guide.","sidebar":"frontendSidebar"},"frontend/performance":{"id":"frontend/performance","title":"Performance","description":"JS","sidebar":"frontendSidebar"},"frontend/pitfalls":{"id":"frontend/pitfalls","title":"Pitfalls","description":"This section is very important to avoid dangerous bugs in your code. Of course each of our languages or libraries in our stack has many advantages, but they came with dangerous pitfalls.","sidebar":"frontendSidebar"},"frontend/rtfm":{"id":"frontend/rtfm","title":"External documentation resources","description":"Runtime / browser","sidebar":"frontendSidebar"},"frontend/setup":{"id":"frontend/setup","title":"Setup","description":"How to setup your machine for frontend development","sidebar":"frontendSidebar"},"frontend/stack":{"id":"frontend/stack","title":"Stack","description":"Our frontend stack is permanently changing as the underlying eco system does. We are trying to adopt technologies at the \\"Slope of Enlightenment\\" in the hype cycle.","sidebar":"frontendSidebar"},"frontend/typescript/objects":{"id":"frontend/typescript/objects","title":"Object declaration syntax in TypeScript","description":"{`","sidebar":"frontendSidebar"},"frontend/typescript/spreading":{"id":"frontend/typescript/spreading","title":"Spreading","description":"JavaScript spread syntax (...) is a surprisingly powerful construct. It has two main use cases in our applications:","sidebar":"frontendSidebar"},"frontend/vscode":{"id":"frontend/vscode","title":"vscode","description":"So vscode https://code.visualstudio.com/ atm is for most of us the IDE of choice, when writing frontends with TypeScript and Next.js","sidebar":"frontendSidebar"},"general/essentials":{"id":"general/essentials","title":"(Random) essentials","description":"Markdown","sidebar":"generalSidebar"},"general/index":{"id":"general/index","title":"General guide","description":"This is a general guide for software developers.","sidebar":"generalSidebar"},"general/package-managers":{"id":"general/package-managers","title":"Package managers","description":"Whenever you can, do not manage software on your computer manually ...","sidebar":"generalSidebar"},"general/security":{"id":"general/security","title":"Security","description":"TODO: @dreadl0ck knock yourself out","sidebar":"generalSidebar"},"general/setup/computer":{"id":"general/setup/computer","title":"Computer","description":"This is a general setup guide for your computer. Make sure that you setup your worpkplace properly too.","sidebar":"generalSidebar"},"general/setup/workplace":{"id":"general/setup/workplace","title":"Workplace","description":"No matter where you work, you need a proper workplace:","sidebar":"generalSidebar"},"general/technologies/SSE":{"id":"general/technologies/SSE","title":"SSE Server Sent Events","description":"Server Sent Events SSE are a well established web standard.","sidebar":"generalSidebar"},"general/utilities/k9s":{"id":"general/utilities/k9s","title":"k9s","description":"Makes your life with k8s so much better. Here are the typical use cases.","sidebar":"generalSidebar"},"general/work/general":{"id":"general/work/general","title":"Working as a software developer","description":"Working as a software developer in a sustainable way is challenging - here are a few observations of healthy habits:","sidebar":"generalSidebar"},"general/work/remote-work":{"id":"general/work/remote-work","title":"Working remotely","description":"Especially since the beginning of the corona pandemy working remotely has become a very important topic. The foomo team has extensive experience working remotely as we are a distributed team.","sidebar":"generalSidebar"},"projects/architecture":{"id":"projects/architecture","title":"Architecture overview","description":"backend services","sidebar":"projectsSidebar"},"projects/cms/contentful":{"id":"projects/cms/contentful","title":"contentful","description":"https://app.contentful.com is one of the very few not open source tools, that we use / support.","sidebar":"projectsSidebar"},"projects/cms/contentserver":{"id":"projects/cms/contentserver","title":"contentserver","description":"https://github.com/foomo/contentserver","sidebar":"projectsSidebar"},"projects/cms/gocontentful/api-reference":{"id":"projects/cms/gocontentful/api-reference","title":"API Reference","description":"Client and cache","sidebar":"projectsSidebar"},"projects/cms/gocontentful/caching":{"id":"projects/cms/gocontentful/caching","title":"Caching","description":"Caching is a fundamental part of working with remote data across the Internet,","sidebar":"projectsSidebar"},"projects/cms/gocontentful/getting-started":{"id":"projects/cms/gocontentful/getting-started","title":"Getting started","description":"Installation","sidebar":"projectsSidebar"},"projects/cms/gocontentful/index":{"id":"projects/cms/gocontentful/index","title":"Gocontentful","description":"What is Contentful","sidebar":"projectsSidebar"},"projects/cms/gocontentful/test-api":{"id":"projects/cms/gocontentful/test-api","title":"Play with the test API","description":"Clone the gocontentful repository from [github.com/foomo/gocontentful] and open it","sidebar":"projectsSidebar"},"projects/cms/gocontentful/working-with-gocontentful-api":{"id":"projects/cms/gocontentful/working-with-gocontentful-api","title":"Working with the Gocontentful API","description":"Let\'s consider a very simple use case where you have a Contentful space where you store information","sidebar":"projectsSidebar"},"projects/cms/index":{"id":"projects/cms/index","title":"CMS","description":"The foomo team has extensive experience with a wide range of CMS systems. Our long journey in the field has brought us very close to the https//app.contentful.com/ but we are watching others like https//directus.io/ very closely.","sidebar":"projectsSidebar"},"projects/gograpple":{"id":"projects/gograpple","title":"gograpple","description":"","sidebar":"projectsSidebar"},"projects/gotsrpc/cli/gotsrpc.yaml":{"id":"projects/gotsrpc/cli/gotsrpc.yaml","title":"gotsrpc.yaml","description":"Typically there will be one central gotsrpc.yaml file per project.","sidebar":"projectsSidebar"},"projects/gotsrpc/cli/index":{"id":"projects/gotsrpc/cli/index","title":"cli","description":"Command line program to generate gotsrpc clients and service proxies.","sidebar":"projectsSidebar"},"projects/gotsrpc/client-transport":{"id":"projects/gotsrpc/client-transport","title":"TypeScript client transport","description":"Client transport implementation","sidebar":"projectsSidebar"},"projects/gotsrpc/getting-started":{"id":"projects/gotsrpc/getting-started","title":"Getting started","description":"- clone and play with the playground","sidebar":"projectsSidebar"},"projects/gotsrpc/index":{"id":"projects/gotsrpc/index","title":"gotsrpc","description":"https://github.com/foomo/gotsrpc","sidebar":"projectsSidebar"},"projects/gotsrpc/playground/hello-world":{"id":"projects/gotsrpc/playground/hello-world","title":"Hello, World!","description":"Enter your name in a form, send it to the server and get a greeting in return.","sidebar":"projectsSidebar"},"projects/gotsrpc/playground/index":{"id":"projects/gotsrpc/playground/index","title":"Playground","description":"https://github.com/foomo/gotsrpc-playground","sidebar":"projectsSidebar"},"projects/gotsrpc/playground/playground":{"id":"projects/gotsrpc/playground/playground","title":"Playground","description":"The playground is not for documentation - it is there to play with the service interface, the server implementation and the generated gotsrpc code.","sidebar":"projectsSidebar"},"projects/gotsrpc/playground/todos":{"id":"projects/gotsrpc/playground/todos","title":"Todos","description":"There was a time, when building a todo app was the default demo, so here is one for you.:","sidebar":"projectsSidebar"},"projects/gotsrpc/playground/union-errors":{"id":"projects/gotsrpc/playground/union-errors","title":"Union Errors","description":"Go Service","sidebar":"projectsSidebar"},"projects/gotsrpc/playground/wheel-of-fortune":{"id":"projects/gotsrpc/playground/wheel-of-fortune","title":"Wheel of Fortune","description":"Spin the Wheel of Fortune to win a price.","sidebar":"projectsSidebar"},"projects/gotsrpc/protocol":{"id":"projects/gotsrpc/protocol","title":"Protocol","description":"A gotsrpc method call is a http POST of an array of arguments to http(s)://host/path/to/service/endpoint/, that will return an array of return values. By default JSON is used for serialization.","sidebar":"projectsSidebar"},"projects/gotsrpc/service-interfaces/errors":{"id":"projects/gotsrpc/service-interfaces/errors","title":"Errors","description":"On the Go server side errors are types, that implement the error type:","sidebar":"projectsSidebar"},"projects/gotsrpc/service-interfaces/index":{"id":"projects/gotsrpc/service-interfaces/index","title":"Service Interfaces","description":"Gotsrpc services are defined in Go.","sidebar":"projectsSidebar"},"projects/gotsrpc/service-interfaces/value-objects":{"id":"projects/gotsrpc/service-interfaces/value-objects","title":"Value Objects","description":"Typically value objects will be serialized / marshalled as JSON. Please refer to this documentation:","sidebar":"projectsSidebar"},"projects/gotsrpc/workflow":{"id":"projects/gotsrpc/workflow","title":"Workflow","description":"Initial setup in a project","sidebar":"projectsSidebar"},"projects/index":{"id":"projects/index","title":"foomo project overview","description":"\\"Stuff we wrote, because nobody else wanted to\\"","sidebar":"projectsSidebar"},"projects/libraries/keel":{"id":"projects/libraries/keel","title":"keel","description":"https://github.com/foomo/keel","sidebar":"projectsSidebar"},"projects/libraries/keel-circuit-breaker":{"id":"projects/libraries/keel-circuit-breaker","title":"Circuit Breaker","description":"Sometimes things go wrong and a service does not respond anymore. Be it because of maintainance or because the whole data center burned to the ground. In such a scenario, you might not want to wait until your request times out. This is where circuit breakers come in handy.","sidebar":"projectsSidebar"},"projects/pagespeed-exporter":{"id":"projects/pagespeed-exporter","title":"pagespeed exporter","description":"https://github.com/foomo/pagespeed_exporter","sidebar":"projectsSidebar"},"projects/webgrapple":{"id":"projects/webgrapple","title":"webgrapple","description":"https://github.com/foomo/webgrapple","sidebar":"projectsSidebar"}}}')}}]); |