This project is part of the Library Management System, developed as part of my onboarding process within the company. The Consumer project specifically handles the JMS (Java Message Service) component, facilitating communication between different microservices within the system. This project integrates with a messaging broker (Apache ActiveMQ Artemis) and uses a MySQL database for data persistence.
The primary goal of this project was to build a reliable and scalable system for managing events, such as book reservations and user notifications, in the library management system. By using JMS, Consumer ensures asynchronous and decoupled communication, which is essential for maintaining performance and flexibility in a distributed architecture.
The Consumer project listens to and processes messages from the messaging broker to perform actions like handling reservations, updating records, and notifying users. This functionality is a critical part of the Library Management System, ensuring that operations are performed asynchronously, enhancing the system’s scalability and reliability.
Key features include:
- JMS Integration: Using Apache ActiveMQ Artemis for message-driven communication.
- Database Persistence: Storing application data in a MySQL database.
- Microservices Communication: Asynchronous communication with other services in the Library Management System.
- Event Handling: The system listens for various events related to book reservations and processes them accordingly.
🧰 Tech Stack
- Java 17: Modern version of Java for stable and efficient application development.
- Spring Boot 3: Lightweight framework used to build production-ready applications.
- Apache ActiveMQ Artemis: Message broker to facilitate asynchronous communication via JMS.
- Spring Data JPA: For interacting with the database using JPA (Java Persistence API).
- MySQL Database: Relational database for storing application data.
- Maven: Build tool used for managing dependencies and packaging the application.
⚙️ Features
- JMS Integration: Establishes communication with a message broker (ActiveMQ Artemis) to listen for events.
- Database Connection: Connects to a MySQL database to persist event data.
- Event-Driven Architecture: Enables asynchronous message processing for scalability and performance.
- RESTful Services: Built as part of a larger system architecture that involves multiple microservices.