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.
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…
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.
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 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 is a software-level testing technique that aims at testing the smallest, logically isolated component of an application.
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.
The official Spring Cloud Stream documentation already provides a very basic explanation of how to implement your own…
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.
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…
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!
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!
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…
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.
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…
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.