Skip to content
@Play-Microservices

Play.Microservices

Microservices application build based on tutorial https://www.youtube.com/watch?v=ByYyk8eMG6c made by @julioct.

Play.Microservices

Welcome to my training project with Microservice architecture! Inside you can find all repositories required and used to set up, build and run own solution based on microservice architecture

Tech stack

In order to run this application you need to install on your machine

  • Any OS platform thanks to .NET Core cross-platform architecture
  • .NET SDK version 7
  • Docker with the following applications:
    • Mongo DB
    • RabbitMQ

Development

For development purposes I recommend using the following tools:

  • .NET SDK 8
  • Docker
  • Git with Git Bash
  • Visual Studio Code (you can use Visual Studio but I do not recommend it for such small services like these)

Objective

The application is service APIs with game features allowing users to create items and then assign items to their inventory. This can be achieved using API or Front-End Web application with simple GUI. Application has to provide high standard quality, be fast with customer responses and be able to scale up and down based on customer's requests.

At this moment application does not have implemented solution for scaling, but everything else is implemented in provided repositories.

Repositories

Based on microservices architecture, I decided to split services into autonomous entities that have separate codebase that works without having direct links to other services. I will explain goal and purpose of each of them.

Play.Catalog

This repository contains two projects:

Service providing API with functionality related to item definition in the game. User can create item based on which later users or other services can use and refer in the game.

Library with contract definition for catalog items changes. This contract is used for publish/subscribe pattern and used by other services and Message Broker

Play.Inventory

Service providing API with functionality related to user inventory. Thank to this users can assign/remove/update any items available in the system (exactly in Player.Catalog repository). It works in asynchronous way with Play.Catalog service.

Play.Common

Library with common code used across other repositories. It provides implementation and set of helpful methods to simplify usage of some patterns used across whole solution. For example it is: Repository, Configuration settings, Broken Circuit etc.

Play.Infrastructure

Repository providing all tools required to set up application and run it in the simple repetitive way. At this moment it contains docker-compose.yml file with configuration of all necessary images used by services (for development purposes atm).

In future this repository will be responsible for CI/CD staff and things related with cloud provider (in my case it will be Azure).

Pinned Loading

  1. Play.Catalog Play.Catalog Public

    C#

  2. Play.Common Play.Common Public

    C#

  3. Play.Infrastructure Play.Infrastructure Public

  4. Play.Inventory Play.Inventory Public

    C#

Repositories

Showing 6 of 6 repositories
  • .github Public

    Training application in Microservices architecture

    Play-Microservices/.github’s past year of commit activity
    0 GPL-3.0 0 0 0 Updated May 22, 2024
  • Play-Microservices/Play.Catalog’s past year of commit activity
    C# 0 GPL-3.0 0 0 0 Updated Apr 24, 2024
  • Play-Microservices/Play.Inventory’s past year of commit activity
    C# 0 GPL-3.0 0 0 0 Updated Mar 26, 2024
  • Play-Microservices/Play.Frontend’s past year of commit activity
    JavaScript 0 MIT 0 0 0 Updated Mar 26, 2024
  • Play-Microservices/Play.Common’s past year of commit activity
    C# 0 GPL-3.0 0 0 0 Updated Mar 7, 2023
  • Play-Microservices/Play.Infrastructure’s past year of commit activity
    0 GPL-3.0 0 0 0 Updated Mar 7, 2023

Top languages

Loading…

Most used topics

Loading…