Skip to content

henshiapp/henshi

Repository files navigation

Building better memory, one click at a time.

About

Henshi is a webapp based on microservices architecture, it uses Vue.js as its primary frontend framework and Nest.js on the backend.

Features

  • PostgreSQL as its SQL database
  • Redis as cache and key-value database
  • Nginx as a reverse proxy
  • gRPC as a synchronous method of communication between the services
  • RabbitMQ as an asynchronous method of communication between the services (🚧 In progress)
  • Docker as its container management tool
  • Kubernetes as its container orchestration tool (🚧 In progress)
  • Github Actions as its CI/CD platform (🚧 In progress)

Architecture

flowchart LR
%% Styles
    classDef app fill:#f7e081,stroke:#333,stroke-width:1px

%% Entities
    FE(fa:fa-twitter Frontend)
    LB(Reverse proxy)
    A(Auth API)
    A-R[(Redis)]
    U(Users API)
    U-P[(PostgreSQL)]
    N(Notification API)
    MMB(MMB API)
    MMB-P[(PostgreSQL)]
    MMB-R[(Redis)]
    RMQ(RabbitMQ)

%% Flow
    FE -->|HTTP| LB
    LB --->|HTTP| AS & US & MMBS
    AS <-.->|gRPC| US & MMBS
    US <-.->|gRPC| MMBS
    subgraph Backend
        RMQ <-.->|AMQP| AS
        subgraph AS [Auth service]
            direction LR
            A --> A-R
        end
        subgraph US [Users service]
            direction LR
            U --> U-P
        end
        subgraph MMBS [Muscular Memory Builder service]
            direction LR
            MMB --> MMB-P
            MMB --> MMB-R
        end
    end
Loading

Development

See DEVELOPMENT.md.