An open API service indexing awesome lists of open source software.

https://github.com/mreshboboyev/rabbitmq-dotnet-core

This repository features Send and Receive console applications that interact with AWS, using RabbitMQ for messaging, EF Core for ORM, and PostgreSQL for persistence. It showcases an event-driven architecture to efficiently send and process messages in a scalable system.
https://github.com/mreshboboyev/rabbitmq-dotnet-core

aws backend-development clean-code ef-core event-driven-architecture postgresql queue-management rabbitmq transactional-messaging

Last synced: about 2 months ago
JSON representation

This repository features Send and Receive console applications that interact with AWS, using RabbitMQ for messaging, EF Core for ORM, and PostgreSQL for persistence. It showcases an event-driven architecture to efficiently send and process messages in a scalable system.

Awesome Lists containing this project

README

          

# ๐Ÿ“ฌ Newsletter System โ€“ Send & Receive Apps with AWS ๐Ÿš€

This repository contains two powerful **console applications**, **Send** and **Receive**, that work together to **handle messaging efficiently**. Built with **.NET**, **AWS**, **RabbitMQ**, and **PostgreSQL**, this system leverages **event-driven architecture** to ensure scalable, real-time message processing.

## ๐ŸŒŸ Key Features

โœ… **Send & Receive Console Apps** โ€“ Dedicated applications for sending and processing messages.
โœ… **AWS Integration** โ€“ Communicates with AWS services for cloud-based message handling.
โœ… **RabbitMQ Messaging** โ€“ Ensures asynchronous, reliable message queuing.
โœ… **Event-Driven Architecture** โ€“ Decouples services for better scalability and maintainability.
โœ… **EF Core + PostgreSQL** โ€“ Provides efficient and structured data persistence.

---

## ๐Ÿ›  How It Works

### **1๏ธโƒฃ The Send Application**
- Generates and sends messages to **RabbitMQ**.
- Stores relevant data in **PostgreSQL via EF Core**.
- Publishes events for further processing.

### **2๏ธโƒฃ The Receive Application**
- Listens for messages from **RabbitMQ**.
- Processes and stores the data in **PostgreSQL**.
- Ensures **fault tolerance** and **retry mechanisms** for reliability.

---

## ๐Ÿ“‚ Technologies Used

๐Ÿ”น **.NET Core** โ€“ Cross-platform application development.
๐Ÿ”น **AWS** โ€“ Cloud-based infrastructure support.
๐Ÿ”น **RabbitMQ** โ€“ Message broker for asynchronous event processing.
๐Ÿ”น **EF Core** โ€“ ORM for PostgreSQL database interaction.
๐Ÿ”น **PostgreSQL** โ€“ Reliable and scalable relational database.
๐Ÿ”น **Console Applications** โ€“ Lightweight, high-performance message handlers.

---

## ๐Ÿš€ Getting Started

### **Prerequisites**
Before running the application, make sure you have:
โœ… **.NET SDK** installed
โœ… **RabbitMQ** running locally or on AWS
โœ… **PostgreSQL** database set up
โœ… **AWS credentials** configured (if needed)

### **Step 1: Clone the Repository**
```bash
git clone https://github.com/MrEshboboyev/rabbitmq-dotnet-core
cd newsletter
```

### **Step 2: Configure RabbitMQ & PostgreSQL**
- Ensure RabbitMQ is running on **localhost:5672** or update the connection string in `appsettings.json`.
- Create a PostgreSQL database and update the connection string in the project.

### **Step 3: Run the Applications**

**Start the Send Application**
```bash
dotnet run --project src/Send
```

**Start the Receive Application**
```bash
dotnet run --project src/Receive
```

Now, messages sent via **SendApp** will be processed by **ReceiveApp** in real-time!

---

## ๐Ÿงช Testing & Reliability

The system includes:
โœ… **Retry Mechanisms** โ€“ Messages are reprocessed in case of failure.
โœ… **Logging & Monitoring** โ€“ Tracks messages and failures efficiently.
โœ… **Database Persistence** โ€“ Ensures messages are stored and retrieved securely.

---

## ๐Ÿ”ฅ Why Use This System?

โœ… **Asynchronous & Scalable** โ€“ Handles high message loads efficiently.
โœ… **Cloud-Ready** โ€“ Seamless AWS integration for deployment.
โœ… **Resilient & Fault-Tolerant** โ€“ Uses RabbitMQ to prevent data loss.
โœ… **High Performance** โ€“ Optimized for event-driven architectures.

---

## ๐Ÿ— About the Author
This project was developed by [MrEshboboyev](https://github.com/MrEshboboyev), a **.NET expert** specializing in **event-driven systems and scalable architectures**.

## ๐Ÿ“„ License
This project is licensed under the **MIT License**. Feel free to use and contribute!

---

๐Ÿš€ **Ready to build scalable, cloud-powered message processing systems?** Clone the repo and start now!