Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/onrcanogul/taskflow
TaskFlow is a comprehensive microservices-based architecture designed to manage task-related functionalities with robust scalability, reliability, and flexibility. The project employs cutting-edge technologies like Spring Boot, Docker, Kafka, RabbitMQ, and PostgreSQL, making it a powerful example of modern software engineering principles.
https://github.com/onrcanogul/taskflow
Last synced: about 1 month ago
JSON representation
TaskFlow is a comprehensive microservices-based architecture designed to manage task-related functionalities with robust scalability, reliability, and flexibility. The project employs cutting-edge technologies like Spring Boot, Docker, Kafka, RabbitMQ, and PostgreSQL, making it a powerful example of modern software engineering principles.
- Host: GitHub
- URL: https://github.com/onrcanogul/taskflow
- Owner: onrcanogul
- License: apache-2.0
- Created: 2024-11-23T19:27:48.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-01T15:03:44.000Z (about 1 month ago)
- Last Synced: 2024-12-01T15:33:59.002Z (about 1 month ago)
- Language: Java
- Homepage:
- Size: 142 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TaskFlow Microservices Project
A distributed system for managing tasks, notifications, and reports using a microservices architecture. This project is built with **Spring Boot**, **Kafka**, **RabbitMQ**, **PostgreSQL**, and containerized using **Docker Compose**.
## Table of Contents
- [Overview](#overview)
- [Architecture](#architecture)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Installation](#installation)
- [Running the Project](#running-the-project)
- [Environment Variables](#environment-variables)
- [API Documentation](#api-documentation)
- [Contributing](#contributing)
- [License](#license)---
## Overview
TaskFlow is a microservices-based project designed to handle task management, user interactions, notifications, and reporting. It demonstrates a scalable, distributed architecture with inter-service communication, centralized configuration, and fault tolerance.
---
## Architecture
The project comprises the following services:
1. **Config Service**: Centralized configuration management using Spring Cloud Config.
2. **Eureka Service**: Service registry and discovery using Netflix Eureka.
3. **Task Service**: Manages tasks, integrates with Kafka for event streaming.
4. **User Service**: Handles user-related operations.
5. **Notification Service**: Sends notifications, uses RabbitMQ for messaging.
6. **Report Service**: Generates and retrieves reports.### Infrastructure
- **RabbitMQ**: Used for asynchronous messaging.
- **Kafka**: Handles streaming events for inter-service communication.
- **PostgreSQL**: Relational database for each service.
- **Redis**: Used for caching purposes.
- **Docker Compose**: Orchestrates the entire stack.---
## Features
- Task creation, retrieval, and updates.
- Real-time notifications using RabbitMQ.
- Distributed event streaming via Kafka.
- Centralized configuration with Spring Cloud Config.
- Service discovery using Eureka.
- Database persistence with PostgreSQL.---
## Tech Stack
- **Backend**: Spring Boot, Spring Cloud (Config, Eureka, Gateway)
- **Messaging**: Kafka, RabbitMQ
- **Database**: PostgreSQL, Redis
- **Containerization**: Docker, Docker Compose
- **Build Tool**: Maven---
## Installation
### Prerequisites
Ensure you have the following installed:
- **Docker**: Version 20.x or higher
- **Docker Compose**: Version 2.x or higher
- **Java**: JDK 17 or higher
- **Maven**: Version 3.8.x or higher