RSSAmplifier

Blog

Blog Title

This is a longer description about your blog.

example.comRSS feed ↗10 posts

Latest posts

Designing APIs for vibe coding

Vibe coding is a point of no return. The fine art of designing APIs and crafting great DevEx? It needs to adapt to this new reality. So how do we actually do that? Before vibe coding I've been doing API design for a while now, nitpicking on parameter names, function overloads, you name it. Over the years, I picked up from my mentors a few principles that I'd call Developer Experience canon .…

Rust macros are not just about DRY

In the last weeks I've been re-working some internals of Restate that enable the SDKs used by our users to interact with the Restate server. At a glance, the Restate server talks with the SDKs using a protocol on top of HTTP that transports few Protobuf messages, prefixed by a header containing message type, length and flags. Easy enough. If you've ever found yourself implementing something…

JUnit 5, Parallel tests, Extensions and ThreadLocal

In the Apache Flink community we're in the process of porting our huge test codebase to JUnit 5 . In order to leverage as much as we can the new JUnit 5 features, in the past days I've spent some time playing around with it. In this blog post I'll talk about my story about enabling the project to use the new JUnit 5 features, including parallel execution, parametrized tests and extensions, and how…

Vert.x container images with jlink

In this blog post I'm gonna show you how I managed to reduce the container image size of an Eclipse Vert.x application, creating a smaller JDK with jdeps and jlink . The application is the data plane of Knative Eventing Kafka Broker , an implementation of Knative Broker tailored on Kafka. Fat-jar We didn't handwritten nor generated a module-info.java for our application, we just ship a fat-jar. To…

Kubernetes controllers - The Empire Strikes Back

In this blog post I want to introduce you to some important steps forward we made in our Extending Kubernetes API In-Process project . If you don't know what I'm talking about, check out the previous post: Kubernetes Controllers - A new hope . We implemented the high-level ABI to start watchers on Kubernetes resources, as argued in Next steps paragraph. This allows us to identify watch requests…

Kubernetes Controllers - A new hope

Today I'm going to introduce you an idea Markus Thömmes and I had to package, deploy and operate Kubernetes controllers in a modern and efficient way that may have a fundamental impact on the Kubernetes ecosystem. Introduction Kubernetes is the standard de-facto container orchestration engine of these days. As every orchestrator of "something" (bare metal machines, VMs, containers, etc), one day…

Reproducibility of benchmarks in Kubernetes

Hi everybody! Today I'm going to talk you about how I've managed to run a benchmark inside Kubernetes in a reproducible manner. Reproducibility: What and Why Reproducibility means that different runs of the same benchmark, testing the same system, running in the same environment, should lead to similar results. This is one of the most important traits that every benchmark should respect, because…

Debts Manager Tutorial Part 3: Vert.x Web API Contract & Service

Today I'm going to bootstrap the project starting from the contract I have already created in the previous chapter . The aim of this chapter is to show you Vert.x Web, Vert.x Web API Contract and Vert.x Web API Service. The combination of these three packages provides all functionalities you need to create a REST API. Then I'm going to use pmlopes' vertx-starter to scaffold the project. If you are…

Debts Manager Tutorial Part 2: Contract Design

Hi guys! Welcome back to this tutorial! In this second chapter of Debts Manager Tutorial I would like to show you how I have designed the REST API of Debts Manager. I'm going to follow the API First approach, documenting all aspects of the API Design with OpenAPI 3. This post doesn't aim to provide you a full guide of how to design REST APIs: if you want more resources to learn it, look at the end…

Debts Manager Tutorial Part 1: Introduction

Some months ago I decided to create a complete Vert.x application to show you capabilities of Vert.x for building Web APIs and, at the same time, I wanted to try some patterns I never used or applied. I'm going to create a production ready application to finally manage the debts with my house mate with a fully powered Vert.x application! Some notes before starting: I'm going to make this guide as…