Software Engineer, Consultant, Speaker & Technical Trainer

Tag: go (Page 1 of 2)

Speaking at Golab Conf this year!

This year, I’m going to be presenting at Golab Conf about Advanced Dependency Management in Go using Fx. I’m also hosting a workshop on integrating your Go service \w the ELK stack.

In the talk, we’ll cover what the Fx framework is and how it can help you reduce some of the component wiring boilerplate as well as help you structure your applications into reusable modules, which is especially great in a microservice environment!

As for the workshop, it’s a VERY hands-on 3-hour workshop in which you’ll learn how to use the Elastic stack to greatly enhance your services’ observability. If you have no idea what all that means, then this workshop is definitely for you. It will give you the knowledge to evaluate if these tools are right for you and the skills to fully integrate this into your systems & start using it right away.

If any of that sounds interesting to you, then book your seat!

Otherwise, check out the full agenda here as there are also other pretty cool talks & some quite interesting workshops!

The conference is hosted online throughout 19th October to 25th October from the comfort of your own seat at home.

The “Advanced Dependency Management in Go using Fx” talk is held on 16th October, 17:30 PM GMT +2.

The “Integrating your Go service with the ELK stack” workshop is held on 21st October, 12:30 PM GMT+2.

I’ll see you there!

Using Kibana to Debug Production Issues


This article is part of the series Integrating your Go service with ELK

In the last chapter of these series, we covered how to create your first Kibana dashboard for a sample web application.

Although that will help you setup Kibana for your production services, what you’ll be doing 99% of the time would be to actually use the dashboard to monitor & debug issues you observe on production.

This is the final post in the series for monitoring Go applications \w Kibana. It will give you some practice using your newly created dashboard to identify problems with a sample web application.

So if you’ve setup Kibana for the first time or you’ve just joined your new team & seen your Kibana dashboards without a clue what’s going on, this post is for you!

Continue reading

How to Use Structured Logs in your Go Application


This article is part of the series Integrating your Go service with ELK

The Elastic stack (also referred to as ELK) can bring a lot of value to your production services. But it is not that much of value if you don’t use structured logs in your services.

In one of my latest posts, I wrote about what ELK is and why you should care. I also wrote a tutorial about how to integrate ELK with your Go app.

In this article, I will walk you through how to integrate structured logging in your Go services. We will use a sample HTTP service with a few basic endpoints and we’ll use the zap library to emit logs on error/success, which would also include some domain-specific info.

Continue reading

Managing Shared Components in Go Microservices with Fx


This article is part of the series Dependency Injection in Go using Fx

In many companies nowadays, microservices is the de facto way of handling service architecture.

Some do it out of necessity as their application has reached a scale where the monolith is a bottleneck. Others, simply like being onboard the hype train.

Whatever the scenario, the decision is often backed by the classical case for adopting microservices, which every junior dev studies extensively before their system design interview.

What gets often neglected, however, is the problems which come with such an approach.
Each of these problems usually demands a sophisticated solution, which raises system complexity.

One such problem is how to reuse the shared infrastructure components in your microservices. Each of your services will probably have a distinct business logic, but it will also come with a big baggage of infrastructure code.

These components usually don’t change too much between your services – healthchecks, monitoring configs, logging, standard service configurations, etc.

Fortunately, there is a very elegant solution for this problem for your Go services, which utilises the Fx Framework. It helps you by automatically managing your dependencies, but it can do much more than that as I’ll show you in the upcoming sections.

In this article, I will show you how to effectively extract your components into reusable & independent modules which can easily be shared across your Go services.

Continue reading

« Older posts

© 2020 Preslav Mihaylov

Theme by Anders NorenUp ↑

BulgariaEnglish