Image for post
Image for post
https://search.maven.org/

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.

Introduction

Uploading your Java code to Maven Central is an important step towards actively contributing to the Java Open Source community, and it, therefore, mandates you follow a series of quite strict requirements.

Let’s go over each one of these requirements…


Image for post
Image for post

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

Azure Spring Cloud is the natural consequence of Microsoft getting closer to the Java community over the last few years, on top of the fact that the Java ecosystem has been completely dominated by Spring for a long time now.

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…


Image for post
Image for post

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 is a software-level testing technique that aims at testing the smallest, logically isolated component of an application.

Unit Testing applied systematically…


Image for post
Image for post

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.

Introduction

The official Spring Cloud Stream documentation already provides a very basic explanation of how to implement your own…


Azure Cosmos DB Change Feed
Azure Cosmos DB Change Feed
Source: https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed-functions

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?

The Change Feed is a system that allows you to listen to all insertion and update events that happen on records (documents) inside any given Azure Cosmos DB collection.

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


Image for post
Image for post
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

One of the most common solutions employed to solve the data propagation issue is…


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

Image for post
Image for post
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…


Image for post
Image for post

What’s RSocket?

RSocket is a binary, asynchronous, one-to-one, stateless, symmetrical protocol that relies on one between TCP, WebSocket, Aeron, and HTTP/2 streams to be used as a transport protocol behind the curtains.

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?

Bare HTTP just doesn’t cut it, especially in the modern world where software architecture leans heavily towards microservices.

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…


Image for post
Image for post
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 @ https://www.linkedin.com/in/dsibilio/ — If my articles helped you, consider buying me a coffee :) https://www.buymeacoffee.com/dsibilio

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