Go
Go should be more opinionated
One of the perks of being a Google Developer Expert is the incredible opportunities it provides. A few weeks ago, I had the opportunity to meet Robert Griesemer, co-creator of Go, in person, as well as Marc Dougherty, Developer Advocate for the Go team at Google. At a happy hour after Google I/O, Marc asked me and another Go GDE from Korea for feedback on the language. My response was that I didn’t have any specific feedback about the language but that:
Creating an MCP Server Using Go
In November 2024, Anthropic published a blog post announcing what may be its most significant contribution to the AI ecosystem so far: the Model Context Protocol.
First impressions with the Turso database
Turso is one of those projects that you look at and think, “How has no one done something like this before?” I’ve been following the project since its launch, but only now have I been able to dedicate some time to testing, which I describe in this post.
Creating an API with authentication using Encore.go
This text is the second part of a series of posts about the Encore.go framework :
- Creating an API with a database
- Creating an API with authentication (<— you are here)
- Communication via Pub/Sub
- Deploy
In the first part, we created a simple API that validates a user given the correct parameters. Now, let’s use this functionality to increase the project’s complexity: add a new API that requires authentication to be accessed.
Getting Started with Encore.go
Encore.go has been on my radar for quite some time, when its beautiful website and examples caught my attention in a news article on Hacker News. But my excitement really increased after this post was published in December 2024. It announced that the framework would become an independent project, separated from the Encore Cloud tool. This decision can make the framework more attractive to companies and developers who want to use it in their existing environments. I have nothing against Encore Cloud, which seems to be a very interesting and robust solution, but this freedom of choice favors adoption in companies of different sizes.
Using CloudEvents in Go
Adopting an event-driven architecture (EDA) to increase scalability and reduce coupling between components/services is relatively common in complex environments.
Resilience in communication between microservices using the failsafe-go lib
Let’s start at the beginning. What is resilience? I like the definition in this post:
The intrinsic ability of a system to adjust its functioning prior to, during, or following changes and disturbances, so that it can sustain required operations under both expected and unexpected conditions
JSON vs FlatBuffers vs Protocol Buffers
When we think about communication between services/microservices, the first option that comes to mind is good old JSON. And this is not without reason, as the format has advantages, such as:
Using test helpers in Go
Recently, in a code review, the great Cassio Botaro gave me a handy tip: refactor some tests to use the test helpers feature from the testing package.