Skip to content

Ebrahem-Outlook/DDD-Customer-Service

Repository files navigation

Customer Service

Welcome to the Customer Service repository! This microservice is designed to manage customer data efficiently and integrates seamlessly with other services in a modern microservices architecture using .NET 8.

Overview

The Customer Service microservice provides robust operations for managing customer information, leveraging .NET 8 and advanced architectural patterns to ensure scalability, reliability, and maintainability.

Features

  • Customer Management: Create, update, and retrieve customer data.
  • Event Sourcing: Implements event sourcing for reliable state management.
  • Validation: Ensures data integrity using FluentValidation.
  • Communication: Utilizes MassTransit and RabbitMQ for inter-service messaging.
  • Query Handling: Employs MediatR for handling requests and responses.
  • RESTful API: Provides a RESTful API for accessing customer services.

Architecture

Diagram

Architecture Diagram

  • Technology Stack:

    • .NET 8: Framework for building the service.
    • MassTransit: For service-to-service communication.
    • RabbitMQ: Messaging broker for asynchronous communication.
    • MediatR: For handling commands and queries.
    • FluentValidation: For validating input data.
    • Event Sourcing: To manage state changes through events.
    • PostgreSQL: Relational database for storing customer data.
    • Redis: Caching layer to enhance performance.
  • Design:

    • Domain-Driven Design (DDD): Follows DDD principles for a well-structured architecture.
    • Clean Architecture: Ensures separation of concerns and maintainability.
    • Event Sourcing: Captures all changes as a sequence of events to ensure reliable state reconstruction.

Getting Started

Prerequisites

  • .NET 8 SDK
  • PostgreSQL
  • Redis
  • RabbitMQ

Installation

  1. Clone the repository:
    git clone https://github.com/Ebrahem-Outlook/Customer-Service.git

About

Customer-Service Build on Microservice Arch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published