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.
- Host: GitHub
- URL: https://github.com/mreshboboyev/rabbitmq-dotnet-core
- Owner: MrEshboboyev
- Created: 2025-01-24T16:43:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-18T12:23:51.000Z (about 1 year ago)
- Last Synced: 2025-04-19T01:04:02.700Z (about 1 year ago)
- Topics: aws, backend-development, clean-code, ef-core, event-driven-architecture, postgresql, queue-management, rabbitmq, transactional-messaging
- Language: C#
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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!