(Don't) Go Tracing Server Calls

This is a past event

17 people went

Location image of event venue


Serverless Architecture Patterns are growing in popularity due to the value of resource conservation and reduction in complexity microservice development. However, serverless architecture presents some new challenges: need for fast application startup time, lack of system control, and application debugging/profiling. In 2018 AWS, one of the primary vendors for serverless hosting, recognized that Go solves all of these problems in an effective manner and thus added support to Lambda as well as a number of other AWS products including Key Management Service (KMS) and X-Ray tracing. Other third-party utilities like Serverless Framework also added support for Go with CloudFormation and Lambda deployment. This presentation will focus on the power of Go to leverage its features to implement these types of services and tools to optimize the performance of highly time-sensitive applications, such as the voice application used in this demo.
The Go programming language was built by engineers at Google to meet their specific needs, among those being the ability to efficiently and effectively trace network calls and measure their performance in order to identify bottlenecks. Their solution for this included the creation of Go’s context package which is instantiated and can be used from the start of any Go application. With the AWS Go libraries, context can be leveraged to effortlessly trace and profile not only internal and external network calls, but also the performance of code as well. X-Ray collects all this information and displays it in useful system diagrams and a Gantt Chart of execution times. However, managing Go’s context when optimizing performance using concurrency can be tricky; this will presentation will look at one method of managing Go’s context among multiple concurrent goroutines.

Brandon Hunter is a full stack developer at 1904labs in St. Louis's Cortex district. Like many, he first learned in C and worked primarily in Java before learning Go on the fly for a client project. Since then, his acquired passion for Go has driven him to explore its potential further in side projects such as serverless applications and voice apps. Additionally, he uses Go as a vice for escaping the grind of JavaScript heavy projects.

The meetup will start with pizza around 6 then announcements at 6:20 - 6:30. Following that will be a few minutes of something interesting in the Go world, then the presentation.

We typically wrap up by 8 but the room will be open for a while so feel free to hang around a bit and visit.