Talking Open Telemetry to instrument Go applications at Gophercon 2021. Chris Reeves, one of our expert platform engineers, shares his keynote talk and insights.
Tiago Mendes gave an excellent thought provoking talk on how data changes within a distributed systems. This seems like an easy task in a monolith, you simply update the data in the database but in a distributed system, where data is spread across multiple services this becomes a challenge. How do we ensure data integrity? Where is the source of truth? How do we maintain
consistency? Tiago's talk covered various strategies in which we can help solve these problems, the main thrust being the Saga pattern.
The general idea is to create data orchestrator services which manage the updating of data in a distributed system, potentially calling multiple services to update their state and rolling back if any errors occurred. This is certainly an interesting approach and one we here at Banked are keen to explore as we really scale out our services.
Testing is always a complex topic but always an extremely important one. Riya Dattani & Chris James from Salt Pay gave an excellent talk on how testing doesn't just impact the code you are writing but how you work with the wider business too.
Riya and Chris went into detail about how we can use BDD (Behaviour Driven Development) to help us writ better more useful software in an efficient way. Their code examples were excellent and it was interesting to see how you can achieve a good TDD/BDD workflow without the need for complex testing frameworks, Go already provides everything we need to write good, well defined BDD style tests.
This was one of my favourite talks of the conference by André Eriksson, a former Spotify engineer and now founder of https://encore.dev/. Here André talked about how over the last 50+ years of software engineering our core tools of our trade have not evolved with us, we still to this day open up a text editor as our core tool to write our code. But the software engineering we do today is very different to the engineering we were doing just 5 years ago but our tools have remained to same.
Today we spend most of our time stitching services together via APIs, events or both, rather than writing the core business logic. André has developed Encore, a way to make our lives and software engineers better by allowing Encore to do all the heavy lifting leaving engineers to be concerned with the core business logic the service needs to provide.
This is certainly an interesting tool to keep an eye on and one to watch out for on YouTube.
Watch Chris’s keynote here.
I'd be remiss not to mention my own talk here, since this was certainly a personal highlight for me. I won't go into too much detail - watch out for a more technical deep dive blog post coming soon.
To summarise, I spoke about how we can use a fairly new framework called Open Telemetry to add valuable observability to our services. Without good observability we run the risk of not being to reason or debug our systems as they grow. Tracing can allow us to track requests through our system end-to-end whilst metrics and allow us to gain valuable insights on system performance. And of course good well formed structured logs can help us debug issues at the root cause.
I also went into how we can set up our architecture using the Open Telemetry collector to provide a single code implementation and allow the collector to push our observability data to any provider we want.
All the slides and code examples are on our GitHub here.
The last keynote of the talk by Adam Hicks spoke about Luno's growth over the past two years was made possible by using Go. Luno was able to empower their teams though their usage of Go allowing their ever growing team of engineers to were able to tackle challenges together.
Luno has developed a few Open Source tools to help them along the way, such as Reflix which is a helps building distributed event notification streams or Jettison which is tool to provide structure logs / error handling over gRPC.
There was certainly a lot of inspiration to take here as Banked transitions to a more event driven system with APIs provided by gRPC / Protocol Buffers.
This was an excellent conference and it felt great to get back there, a quick shout out to the events team and all the staff at The Brewery which provided an excellent venue, food and drinks.
There was so much more I didn't get to see at GopherCon 2021, so keep an eye out on the GopherCon UK YouTube channel for more.
Banked Ltd is authorised and regulated by the UK Financial Conduct Authority
3 Waterhouse Square, 138—142 Holborn, London, EC1N 2SW
Company number 11047186 : Firm Reference Number 816944 : +44 (0) 20 8090 2747
© Banked : 2022