/ The Need For Speed: Scaling Go Microservices

Description

## Overview Once upon a time, the tech community pushed microservices as the next best thing. To write the code, that is easy to maintain, easy to read and even easier to scale. The last one, most of the time, turned out to be more complicated than we've ever thought. This talk, aimed to more experienced Go engineers, will focus on the **Benchmark First, Fix Next** approach - how to benchmark the things that actually matter, how to make incremental positive changes, and how to effectively monitor the performance of your newly scaled service. The talk will demonstrate these principles through examples of scaling the real-life, high-performance Go services at Form3, including all the lessons we've learned from undertaking this work. ## Structure Here are the key sections from this talk: * There is no such thing as a free scale * Writing code with scale in mind * Premature optimisation is the root of? * How does Observability and Tracing connects into here * Benchmark First, Fix Next * How to create benchmarks that will show where your code is in at any given time * Actual scaling (the code bits) * Low-Hanging Fruit (marshaling/unmarshaling vs streaming data; splitting actions within your code) * Refactoring (Introducing CQRS, asynchronous processing using queues, HTTP vs gRPC vs GraphQL a.k.a communication between your services) * Database and how not to lose your mind (long queries, transactions) * Examples of scaling * Splitting handlers in APIs * Error groups and asynchronous semaphores ## Conclusions At the end of this talk, the audience will take away concrete steps that they can use to speed up and scale their microservices architecture.

Session 🗣 Advanced ⭐⭐⭐ Track: Native Languages (Rust, Go lang, C++, C#, .Net, ...)

Golang

Go

Microservices

Asynchronous Processing

Scaling

This website uses cookies to enhance the user experience. Read here