Publishing your first artifact on Maven Central can be as exciting as it can be confusing. We’ll see together how to make your first time as smooth as it should be, while also making sure people can easily contribute to your Open Source Java libraries. At last, we’ll see how to craft a Maven Central-ready CI/CD pipeline via GitHub Actions.


Let’s go over each one of these requirements…

In this article, you will learn about Azure Spring Cloud and its main features quickly and with ease, through a very down-to-earth approach.

What made it possible

We can speculate that such a feat was only achievable thanks to the visionary leadership of Satya Nadella, Microsoft’s CEO, deciding to treat Java as a first-class citizen rather than a nuisance or a competitor.

It’s quite…

It’s never too late to pick up some healthy Software Craftsmanship habits, but sometimes we might need a little push to do so.

It is not too uncommon to hear of IT companies still not relying on consolidated techniques such as TDD, Unit Testing, and maintaining high Code Quality standards.

Understanding the benefits of adopting a technique is crucial to make us feel more comfortable and at ease when practicing it, so let’s get right into it.

Unit Testing, And Why It Matters

Unit Testing applied systematically…

Spring Cloud Stream is a framework built on top of Spring Boot and Spring Integration, that is designed to build event-driven microservices communicating via one or more shared messaging systems.

The core Spring Cloud Stream component is called Binder”, a crucial abstraction that’s already been implemented for the most common messaging systems (eg. Apache Kafka, Kafka Streams, Google PubSub, RabbitMQ, Azure EventHub, Azure ServiceBus…).

In this article, we’ll see in detail how to develop a custom Spring Cloud Stream binder from scratch.


Azure Cosmos DB Change Feed
Azure Cosmos DB Change Feed

Azure Cosmos DB is a fully managed, highly scalable, multi-model PaaS database solution offered by Microsoft as part of the Azure platform stack.

Azure Cosmos DB offers many useful features that can be easily enabled/disabled via feature toggles and fine-tuned through the Azure portal; the one you’re going to read about today is called Change Feed.

What’s a Change Feed?

You can imagine it as a sort of commit log that can be queried at…

How to propagate data through reactive pipelines the Good, the Bad and the Ugly way.

Propagating data through reactive pipelines is a very common development concern that arises when building reactive applications based on any Reactive Streams implementation (eg. Project Reactor, RxJava, Akka Streams).

We’ll be going through the Good, the Bad and the Ugly of propagating information downstream, using Project Reactor as our Reactive Streams implementation of choice.

NOTE: if you’re quite familiar with Project Reactor and reactive programming already, you can jump to my demo Spring Boot application on GitHub and dig through the source code; it’s quite straightforward!

The Bad

Find the blockage that clogs your reactive streams pipelines before it hits production!

The official Project Reactor logo

In the era of Reactive Programming, one of the most common concerns is to spot blocking calls and embed them properly in reactive code or replace them with a reactive alternative when possible.

It’s really easy to miss some of these blocking operations and end up shipping to production something that shouldn’t be considered production-ready at all: scheduling blocking calls inside non-blocking threads can lead to unpredictable behaviour, at best!

To avoid this happening to you, you should strongly consider relying on a tool like BlockHound to…

What’s RSocket?

It’s been developed to match the Reactive Streams semantics, therefore integrating seamlessly in applications that depend heavily on Reactive libraries such as Project Reactor or ReactiveX.

Why should I use RSocket?

Microservices need to communicate potentially with a myriad of other microservices, in a tangled and twisted dance that doesn’t always go along with the core principles…

Azure EventHubs architecture overview (more here)

Azure EventHubs is a reliable, resilient, scalable data ingestion service offered by Microsoft.

Being able to handle obscene amounts of events per second, it represents one of the hottest choices amongst streaming platforms that are currently offered as PaaS solutions.

It is crucial to perform efficient load testing on applications that rely on EventHubs, to detect all kinds of issues (memory leaks, inefficient code paths, bottlenecks of sorts…).

But, as important as it might be, it’s also not very straightforward.

At the time of writing, there are very few — as a matter of fact, I couldn’t find any for…

Domenico Sibilio

Software Developer @ — If my articles helped you, consider buying me a coffee :)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store