Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Based on eCommerce application, Microservices practice with .Net Core 7, RabbitMQ, MongoDB, Redis, PostgreSQL, SQL Server, Repository Pattern, Clean Code architecture

Notifications You must be signed in to change notification settings

Aronno1920/Microservices_Ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

84 Commits

Repository files navigation

eCommerce Application using Microservice Architecture



This is a microservice application built using .NET 7, various technologies and frameworks commonly used in microservices architecture. The application includes microservices for Product, Basket, Discount and Ordering modules, which are essential for building e-commerce applications.

Implementation

The microservice application is built using a combination of NoSQL and relational databases. MongoDB and Redis are used for storing unstructured data and caching, while PostgreSQL and SqlServer are used for storing structured data.

Communication between microservices is implemented using RabbitMQ for event-driven communication. The Ocelot API Gateway is used to route requests to the appropriate microservices.

The application is built using the principles of Clean Architecture, which emphasizes the separation of concerns in software design. This makes it easy to maintain and modify the application over time.

Prerequisites

  • Basic knowledge of C#, Asp.Net MVC and REST API
  • OOP Concept
  • Internet Information Service (IIS)
  • Github

Tootls

  • .NET7 or above SDK
  • Visual Studio 2022
  • Internet Information Service (IIS)
  • Postman



Development

Catalog.API with MongoDB

  • Assign Port for localhost: 5001
  • Packages
    • CoreApiResponse - Custom return type
    • MongoRepo - MongoDB database with repository

Basket.API with Radis

  • Assign Port for localhost: 5002
  • Packages
    • CoreApiResponse - Custom return type
    • Microsoft.Extensions.Caching.StackExchangeRedis - Redis database

Discount.API with PostgreSQL

  • Assign Port for localhost: 5003
  • Packages
    • CoreApiResponse - Custom return type
    • Npgsql - PostgreSQL database
    • Dapper - ORM (Object Relational Mapping) for database related action

Discount.Grpc with PostgreSQL

  • Assign Port for localhost: 5004
  • Packages
    • Grpc.AspNetCore - Grpc services
    • Npgsql - PostgreSQL database
    • Dapper - ORM (Object Relational Mapping) for database related action
    • AutoMapper.Extensions.Microsoft.DependencyInjection - AutoMapper by dependency injection
  • gRPC (Google Remote Procedure Call) basics:
    • Proto File/Protobuf (Proto buffer) - Language neutral format for specifying the messages send and received by gRPC services.
    • Service - Protocol buffer compiler will geneate service interface code ans stubs
    • Protobuf Message - Messages are the main data transfer object in profobuf.
    • Naming Conventions
      • Files should be named lower_snake_case.photo
      • Use CamelCase (with a initial capital) for message and service names, ex: DiscountRequest, CreateDiscount
      • Use underscore_separated_names for field names, ex: product_name, discount_rate
      • The "= 1", "= 2" markers on each element indentify the unique "tag" the field uses in the binary encoding
    • Proto file propeties
      • Build Action: Protobuf compiler
      • gRPC Stub Classes: Server only



Conclusion

This microservice application demonstrates the use of various .NET technologies and frameworks commonly used in microservices architecture. It provides a practical and hands-on approach to learning microservices architecture, which is essential for developers who want to implement microservices in their own projects.

Credited

Programming Palli

About

Based on eCommerce application, Microservices practice with .Net Core 7, RabbitMQ, MongoDB, Redis, PostgreSQL, SQL Server, Repository Pattern, Clean Code architecture

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /