A proof-of-concept forum application created using a microservices architecture.
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.
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).
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 |
For more information about configuration and deployment, please view the documentation located in the /docs folder.
Acknowledgments:
- Logo Icon: Tabler Icons (MIT License)
- Logo Font: Oregano (Open Font License)
This repository is licensed under the Apache License v2.0.

