A Monorepo that hosts two web server and a web client. Purpose of this project is to demonstrate usage of Kafka and Dapr. We have one producer server that publishes messages to kafka and consumer server publishes that message web client after receiving the message from kafka
We’re always looking for people who value their work, so come and join us. We are hiring!
Build system: Turborepo
-
Global
- Node.js 16
- yarn
- docker-compose
- Dapr - Used to simplify microservice connectivity
-
API
- KafkaJS - Kafka client for NodeJS
- Kafka Graphql Subscriptions
- TypeGraphql - Code first Graphql
- Fastify / Mercurius - Fastest web framework for NodeJS. Mercurius is the graphql adapter of Fastify.
- Mikro ORM - Awesome TypeScript ORM for NodeJS
- Postgres
- Kafka
-
Frontend
Workspaces can exist in these folders:
apps
services
packages
In this starter kit these workspaces are defined already:
apps
- producer_server
- consumer_server
- ui
services
- message_broker
- postgres
packages
- config
- tsconfig
- ui-components
- Install dependencies using
yarn install
- Start the stack using
yarn dev
- Start dapr
yarn dapr:run
(please make sure Kafka is running before running dapr) - Browse http://localhost:3000