Skip to content

shaam-codes/scrapper-app

Repository files navigation

scrapper-app - [WIP]

Core of the application, works as the back-end for the users. This is working under micro service architecture

Please refer to the above repository to understand complete flow and functions.

Architecture

As mentioned in the documentation core application works with gPRC. Application developed based on the Hexagonal Architecture also known as ports and adapters architecture.

This hexagonal architecture uses for

  • Decouple business logic from all dependencies, such as framework, database, message queues and etc
  • Clear implementation of SOLID principles- Easy to maintain OOP concepts
  • Test execution with mock services
  • Ability to modify business logic and dependencies

As mentioned in the docs here is the diagram of hexagonal

high level diagram of services

This includes all the domain level pure classes with any dependance or addition of any database.Classes are with private constructors and few static and regular functions, since the only way to access these is via DTO(Data Transfer Objects).

This layer contains service classes and business logics. These services don't have any knowledge of callers. Also depend on the domain layer but not from infrastructure or outside.

This layer contains the actual usages, such as framework, database, message queues and other listeners. Also implementations of ports known as adaptors.

For simpilicity added -use-case as the postfix for interface files. These ports communicate to the hexagonal architecture. Anyway, we need to implement inbound adapters to actually use it. Also there might be multiple adapters for the same port, since each adapters will responsible for each way of communication to inner layer from dependencies

For simpilicity added -repository as the postfix for interface files. These ports to used communicate from the hexagonal architecture. Anyway I need to implement outbound adapters to actually use it. Also there might be multiple adapters for the same port, since each adapters will responsible for each way of communication from inner layer to dependencies

These objects are used as the arguments for communicates from/to infrastructure layer to/from inner layers

About

Core of the application, works as the back-end for the users

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages