Skip to content

TheDropZone/ProActiveQueueClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ProActiveQueueClient

The ProActiveQueue Project is a highly opinionated library focused on quick & reliable ActiveMQ messaging in Java. In addition, this project is intended (but not required) to be connected with AWS ECS for queue-scaled microservices.

Project Focus:

  1. Fast, Opinionated, Reliable messaging with ActiveMQ/AmazonMQ
  2. Fast, Opinionated, Responsive Microservice scaling based on an ActiveMQ Queue 2.a Stack: AWS ECS Fargate, AmazonMQ/ActiveMQ

1. Messaging

On the messaging side, ActiveMQ java integrations require a lot of boilerplate code gathered from various documentation sources in order to get useful production work done. The ProActiveQueue project aims to minimize the time to get off the ground with ActiveMQ with strong opinions on:

  1. Transactions: If messages aren't processed, they are returned for processing in the future
  2. Batching: Send and recieve messages in batches within the same connection/transaction
  3. Minimal Boilerplate: Configuring, Receiving, and Sending should require minimal code

2. Microservice Queue com.ProActiveQueue.ProActiveQueueClient.Orchestration

On the AWS microservice side, this project aims to effortlessly link AWS AmazonMQ/ActiveMQ with AWS ECS Fargate. The integration goals are aimed at the following architecture/flow:

  1. A group of messages are sent from 1 (or more) applications to an ActiveMQ Queue.
  2. The messages are detected and an AWS ECS cluster spins up the required containers to process all messages.
  3. The messages are transactionally processed across AWS ECS (Fargate) containers.
  4. The AWS ECS cluster scales down as all messages are processed

Getting Started

Maven Dependency:

Always check for the latest tag in github

<dependency>
  <groupId>com.github.TheDropZone</groupId>
  <artifactId>ProActiveQueueClient</artifactId>
  <version>0.0.6</version>
</dependency>

Local Send/Recieve:

To play around with the library, you can spin up a local embedded broker. The below example shows how to send and recieve with an embedded broker.

        QueueConfig config = new QueueConfig("vm://localhost?broker.persistent=false",null,null);
        AsyncMessageTest.factory = config.getActiveMQConnectionFactory();
        //to-do

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages