Introducing Watermill - Go event-driven applications library

Watermill is a Go library for working efficiently with message streams. It is intended as a library for building event-driven applications, enabling event sourcing, CQRS, RPC over messages, sagas. Why? Lack of standard messaging library There are many third party and standard lib...

Goroutine Leaks - The Forgotten Sender

Introduction Concurrent programming allows developers to solve problems using more than one path of execution and is often used in an attempt to improve performance. Concurrency doesn’t mean these multiple paths are executing in parallel; it means these paths are executing out-...

Keeping json files formatted

I’m working in a project that uses Chef, so it has a lot of JSON files. I like everything to be preperly formatted. The choice of format itself does not bother me much, giving that there is one. This project did not (although it was surprisingly not that bad). So, I decide...

⭐️ Go: The Complete Bootcamp Course

Keeping common scripts in GitLab CI

With this post, I’d like to start a series of CI-related tips, targeted mostly at GitLab, since that’s my go-to tool for things CI/CD-related. I’m sure most of them could be easily applied to other CI systems, though. While GitLab does a great job at many things...

GoReleaser: build and push Snapcraft packages from TravisCI

GoReleaser was able to build Snapcraft packages for a long time, but it wasn’t able to push them until today. Let’s see how to wrap to your TravisCI build! Since v0.28.0, GoReleaser can create Snapcraft packages and upload them to the GitHub release. On v0.91.0, we a...

Hacktoberfest Joinville

I shared some of my experiences coding GoReleaser, this time, more about community and less about Go itself. Slides are more or less the same, but here they are anyway:

Adding methods to Go interfaces

Couchbase: rolling upgrade from 4.5.x to 5.1.x

I have an old Couchbase 4.5.x cluster, and I though it would be nice to upgrade it. This are my notes and the tests I did before doing it “in production”™️. Breaking changes First thing I did was going through the changelogs and look for breaking changes. 5.5.x...

GopherCon Brasil 2018: my review

A quick review of my second ever GopherCon - the first one as a speaker, and my experience talking. At this year’s GopherCon we had a lot of great talks, some even from international speakers from Google and Cloudflare! A Gopher I’m not good at public...