Skip to content
@Practice-ISU

Practice-ISU

Practice-ISU

Flutter C# Go

Docker Postgres

License MIT

Practice-ISU is an organization that provides microservices for cloud file hosting. The application architecture consists of a client (Flutter) connected to an API gateway that serves as a bridge between microservices and the client. Currently, three microservices are available, including Discovery-service, User-service, and Storage-service.

Architecture

Architecture

The application represents a connection between the client (Flutter) and the API gateway, which is the link between the microservices and the client. Currently, three microservices have been implemented:

  • Discovery-service
  • User-service
  • Storage-service

Discovery-service is a microservice that plays a key role in the overall application architecture. When a request comes from the client, the API gateway queries the discovery-service to determine whether the required microservices needed to fulfill the request are available or not.

Discovery-service combines two GRPC services to facilitate communication between microservices and the API gateway. These two services are:

  1. Registration - This service is responsible for registering microservices in the repository and assigning channels for API-gateway to interact with specific microservices. The registration service is a crucial component of the discovery-service since it guarantees that only registered microservices are available for use.
  2. Ping - After registering a microservice, the discovery-service sends pings to check the availability of the microservice. This service is an important component of the discovery-service since it ensures that only available microservices are used to fulfill requests.

User-service is an important component of the internal microservice architecture of the Practice-ISU project. This microservice handles a wide range of user-related tasks, including registration, authentication, token verification, and user data retrieval. It is designed for access through a GRPC server, allowing for faster and more efficient communication between the user-service and other microservices.

As an internal microservice, user-service is registered in the discovery-service, which is a centralized registration and ping service for all microservices in the application. When a request comes from the client, the API gateway uses the discovery-service to determine whether the required microservices are available to fulfill the request. If the user-service is unavailable or not registered, the API gateway will not direct the request to that microservice. This ensures that only available and registered microservices are used to fulfill requests, thereby improving the overall performance of the application.

Storage-service is an internal microservice that functions as a file and folder management system. This service provides users with various functions, such as adding, deleting, and retrieving folder information, retrieving all folders for a specific user, as well as adding, deleting, and retrieving files in various formats, including static files, base64, and zip archives.

To access Storage-service, it is registered in the discovery-service, which is a centralized registration and ping service for all microservices in the application. This registration ensures that only available and registered microservices are used to fulfill requests, improving the overall performance of the application. In addition, the service closely collaborates with the discovery-service by providing its IP address, allowing other microservices to easily locate and communicate with it, further improving the efficiency of the application.

Pinned

  1. discovery-service discovery-service Public

    Microservice for determining the location addresses of other microservices

    C#

  2. gatekeeper gatekeeper Public

    A single entry point for all client requests and routes them to the appropriate microservices.

    C#

  3. storage-service storage-service Public

    Go

  4. user-service user-service Public

    This microservice is responsible for managing user-related functionality.

    Go

  5. web-client web-client Public

Repositories

Showing 6 of 6 repositories

Top languages

Loading…

Most used topics

Loading…