2025-03-13 16:24:22 +00:00
2023-09-27 20:28:36 +01:00
2023-09-27 22:27:52 +01:00
2024-03-27 11:12:43 +00:00
2023-09-27 16:01:41 +01:00
2023-09-27 16:01:41 +01:00
2023-08-25 14:45:05 +01:00
2023-09-27 20:28:36 +01:00
2023-09-27 22:27:52 +01:00

Panels

A proof-of-concept forum application created using a microservices architecture.

Panels Banner

About

This application was created as a hobby project in spare time. In current form the application serves as a proof of concept containing bare-bones functionality.

There are definitely aspects that I'd like to improve or polish further, in addition to some ideas for functionality that I would like to implement at some point. As such, the project should be considered a work-in-progress at this stage.

Architecture

Users are served the React site from the frontend and make calls to the REST API exposed by the gateway-service. The gateway-service makes calls to the relevant services for the request.

Interservice communication is handled through RPC calls (utilising gRPC) and event sourcing (utilising Kafka).

Architecture

Services

I used a variety of languages for writing the services as this was created as a hobby project and the architecture gave me some room to play around with.

Service Language Datastores Description
frontend TypeScript (React) N/A Web-based user interface
gateway-service Golang N/A Exposes a HTTP REST API to allow users to communicate with the application.
panel-service Golang PostgreSQL, Redis Responsible for operations related to panels
post-service Golang PostgreSQL, Redis Responsible for operations related to posts
user-service TypeScript (Node) MongoDB Responsible for operations related to users
auth-service Python PostgreSQL Responsible for authenticating users
comment-service Python PostgreSQL, Redis Responsible for operations related to comments

Deployment and Configuration

For more information about configuration and deployment, please view the documentation located in the /docs folder.

License

Acknowledgments:

This repository is licensed under the Apache License v2.0.

Languages
Python 39%
Go 30.7%
TypeScript 28.5%
Makefile 1.1%
Dockerfile 0.6%