bppMQ - Blake's Push Pull Message Queue

High-performance message queuing system for AI workloads and enterprise applications


Project Overview

bppMQ (Blakez Push Pull Message Queue) is a Quarkus-based Push Pull Message Queue application with CouchDB backend support. Built with modern Java technologies and clean architecture principles, the system is designed for high-performance message processing with comprehensive AI integration capabilities.

Key Features

  • High-performance push-pull message queuing with indexed access
  • RESTful API with OpenAPI documentation and Swagger UI
  • CouchDB backend with optimized views and document structure
  • CDI integration with automatic repository injection
  • Batch operations for high-throughput processing
  • Comprehensive AI integration patterns and examples
  • Clean architecture with domain-driven design

Technology Stack

  • Java 21 with Records and modern language features
  • Quarkus framework (Jakarta EE, CDI, JAX-RS)
  • CouchDB 3.0+ with custom views and indices
  • Maven build system with native compilation support
  • OpenAPI 3.0.3 specification with interactive documentation
  • Docker deployment with environment-based configuration

Quick Start Example

# Push a message
curl -X POST "http://localhost:8080/queue/push?topic=test" \
  -H "Content-Type: application/json" \
  -d "Hello World"

# Pull a message
curl "http://localhost:8080/queue/pull?topic=test&index=0"

Configuration

Multiple configuration methods supported:

  • Environment Variables (DB_TYPE, DB_PROD_COUCHDB_*)
  • Configuration File (.env)
  • Docker environment flags

Documentation

Comprehensive documentation is available covering all aspects of the system:

GitHub Repository

For the latest source code, issue tracking, and contributions, visit the project repository:

View on GitHub

API Endpoints Reference
Method Endpoint Description
POST/queue/push?topic={topic}Push a message to topic
POST/queue/pushBatch?topic={topic}Push multiple messages
GET/queue/pull?topic={topic}&index={index}Pull message by index
GET/queue/pullBatch?topic={topic}&index={index}&batchSize={size}Pull batch of messages
GET/queue/pullFrom?topic={topic}&from={index}&batchSize={size}Pull messages from index
GET/queue/countFrom?topic={topic}&from={index}Count messages from index
GET/queue/meta?topic={topic}Get topic metadata
POST/queue/clearBefore?topic={topic}&index={index}Clear messages before index

Note: This documentation is automatically synchronized from the source repository during the build process. For the most current information, please refer to the GitHub repository.