MuleSoft Integration With RabbitMQ

This article will explain in detail, how to integrate with RabbitMQ in MuleSoft and read messages from a queue.

Install and Setup RabbitMQ on Mac

In this section, I will explain how to install RabbitMQ on Mac, create a new queue and publish messages to the queue using the RabbitMQ portal.

RabbitMQ RPC With FastAPI [Video]

Below, I explain a sample app with a FastAPI endpoint. RabbitMQ is used to deliver and return messages between the API endpoint and the backend. The backend code could run on a different microservice, and multiple backends can be started for scalability.

Leveraging CloudAMQP Within My Heroku-Based SaaS Solution

In the "Using Heroku to Quickly Build a Multi-Tenant SaaS Product" article, I documented the foundation for a new SaaS solution that I am building (initially for my sister-in-law) — utilizing the Heroku ecosystem. Using Heroku allowed me to deploy the app quickly, without having to worry about infrastructure, DevOps, scalability when the app gets popular, etc. The "Integrating Twilio Into My SaaS Solution In Heroku" publication provided an example of how easy it is to create a Twilio instance and integrate the solution into my Fitness-based SaaS solution. This current journey has resulted in a feature set that both trainers and their clients have been able to enjoy.

This article is going to focus on invoicing clients for services that have been performed and will utilize messaging solutions within the Heroku ecosystem. The goals of the invoice process are as follows:

Distributed Balanced Partition-Queues Assignment Using Kubernetes statefulSet

Partitioning a domain is a useful way to achieve scalability of a system. The idea behind partitioning is that instead of putting everything in a single place, you divide the dataset or the work into multiple places based on some attribute, which is usually the identifier of the entity.

The division allows us to spread the storage and/or the processing to multiple machines or containers, and allows the horizontal scaling we were seeking to get.

Conceptualization of IoT-Enabled Smart Kitchen

We all agree that COVID has turned our lives upside down. Each one of us is now under house arrest and struggling to adapt to this new lifestyle of managing home and work simultaneously.

This new lifestyle has not only taken a toll on our physical health but also on our mental health. I am no different, with the added household responsibilities, it has become arduous for me to manage it along with the office work especially when it comes to maintain a grocery list. Every time a grocery item was missed out of the list, the task became more daunting.

Alternate, when RabbitMQ is not installed as a service on Windows10?

Problem Statement:

I have installed RabbitMQ on windows machine N number of times, but this time, it swallowed all my brain. Reason? Maybe the new permissions/policies that my company has enforced. I have installed Erlang 10, set ERLANG_HOME as well, and then installed RabbitMQ 3.7.7. No error, no exception, but I was unable to see RabbitMQ as a service.

Capture IoT Devices Data Via RabbitMQ

Introduction

The purpose of this article is to give you an overview of how to capture events from MQTT enabled IoT sensors/devices and monitors it via ELK stack.

After capturing events, you could either store it in event-stores or in time-series database for further processing.

Spring Cloud Stream: A Brief Guide

This article will teach you how to create a Spring Cloud Stream app that works with a messaging service (like Apache Kafka, RabbitMQ, etc.), You’ll be using functional, reactive code—leveraging Spring’s WebFlux—and Spring Cloud Stream’s functional building model,

Today, you are going to make an app that has a publisher, a processor, and a consumer. It will leverage two topics to publish a stream of integers, process the integers to calculate a running total, and consume the processed data. In the beginning, these messages will be simple (strings/integers)—but later you’ll see how Spring Cloud Stream makes mapping POJOs (Plain Old Java Objects) to messages using JSON mapping simple!

Building AMQP-Based Messaging Framework on MongoDB

Introduction

In any integration scenarios, messaging needs are inevitable. There are several messaging frameworks /tools/technology available today to chose from. Starting from old MQ we have come a long way to the world of open source-based technologies like Kafka, RabbitMQ, ActiveMQ, etc. Every other messaging frameworks came due to certain needs. With the growing trends of microservices, engineers are looking for more lightweight, independently deployable, and less costly options in the market. Every messaging framework comes with the baggage of additional infrastructure and maintenance headache. In one of my projects there has been a proposal to use the capped collection feature of MongoDB along with its tailable cursor as an alternative option to deploy any real messaging infrastructure. Now the question arises,

  • Is this option suitable for all kind of messaging needs?
  • Can it be a replacement of proper messaging framework like Kafka, RabbitMQ, etc.?
  • What are the pitfalls?

Not to mention that this feature of MongoDB is quite old and well-known in the market and you will find a lot of articles around it. However, I believe those articles have just shown the basic way of enabling it without going deep into it. A real messaging framework has lots of challenges than just making an asynchronous way of delivering the messages. In this series of articles, we will try to address them and see if we can really build some messaging infrastructure using MongoDB by considering all the needs of a messaging framework.

Spring Boot + RabbitMQ Tutorial — Retry and Error Handling Example

In a previous tutorial, we implemented a Spring Boot + RabbitMQ example to understand the various exchange types. In this tutorial, we will be implementing a Spring Boot + RabbitMQ example to retry messages on exception. If the exception still exists after maximum retries, then we put a message in a dead letter queue where it can be analyzed and corrected later.

What Is a Dead Letter Queue?

In English vocabulary, dead letter mail is undeliverable mail that cannot be delivered to the addressee. A dead-letter queue (DLQ), sometimes known as an undelivered-message queue, is a holding queue for messages that cannot be delivered to their destinations due to something.
According to Wikipedia — In message queueing the dead letter queue is a service implementation to store messages that meet one or more of the following failure criteria:

Scale Your Application With Spring and RabbitMQ

Learn how to scale your application with Spring and RabbitMQ.

There are some projects that require a massive amount of time to run specific features: an e-commerce scenario or a system that needs to send an email when a payment process is confirmed by the payment provider. As a developer, we know that keeping users waiting isn’t an option.

In the case of the payment, the application needs to send an email when the payment is complete. Creating a queue of tasks to be executed asynchronously is an excellent way to process a large quantity of data without impacting users, keeping them happy. The goal of this post is to talk about how to create these asynchronous calls with Java using Spring and RabbitMQ.

Understanding Microservices Choreography Using RabbitMQ and Node.js

A colleague and I had discussed the choreography of microservices a while ago and the topic came up for discussion again recently. In order to ensure that I understood the nuances correctly, I decided to write some code to implement the approach. Here are the tools/technologies that I chose:

  • Node.js for building the microservices.
  • Restify for exposing Restful APIs.
  • CloudAMQP — a RabbitMQ as a service offering as the integration bus.
  • amqp.node — a Node.js client library for RabbitMQ.

CloudAMQP offers a free tier good enough for learning and trying things out. It also comes with an easy to use management console that gives good statistics. The tutorials and articles are useful too. There is a host of options for the Node.js RabbitMQ client libraries. I tried a few and then settled with amqp.node as the RabbitMQ site had their tutorials based on it. The library comes in two flavors, one with callbacks and the other with promises. Being comfortable with callbacks, I opted for it.

How to Split Up Synchronous and Asynchronous Parts of Your System in Java

A lot of developers say that it's very complicated to switch their applications over to asynchronous processing because they have a web app with naturally synchronous communication. In this post, I would like to introduce one way to do it using a few well-known libraries and tools to use while designing their systems. The example below is written in Java but I believe it's more about the basic principles and the same app can be re-written into any language.

Tools and libraries needed: