Skip to content

a scalable chat app using redis for message distribution, kafka for streaming, and postgresql for storage, ensuring seamless cross-server communication.

Notifications You must be signed in to change notification settings

shamikhan005/texvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

texvim

texvim is a scalable chat app foundation. unlike typical chat applications, where messages are emitted directly on the server, texvim uses redis to emit messages and then distribute them to multiple servers, ensuring that users on different servers receive messages seamlessly. from redis the message is sent to kafka for stream processing, stored in postgresql, and consumed by node.js.

Screenshot 2024-10-06 191920

tech stack

  • turborepo: a monorepo for managing multiple projects efficiently.
  • tailwind CSS: utility-first CSS framework for styling the application.
  • typescript: a strongly-typed superset of javascript for better code quality.
  • redis: for handling real-time message distribution.
  • kafka: for streaming and managing large-scale data pipelines.
  • postgreSQL: a relational database for storing messages.
  • node.js: used for consuming Kafka messages and managing server operations.

package manager

  • yarn: a fast, reliable, and secure dependency management tool.

installation

you can fork this repo by clicking the fork button in the top right corner of the page.

clone repository:

git clone https://github.com/shamikhan005/texvim.git
cd texvim

install dependencies:

yarn install

set up environment variables:

  • create a .env file in the root directory of the project.
  • add the required environment variables such as Redis URL, Kafka broker details, and PostgreSQL connection details.

start the development server:

yarn dev

usage

after starting the development server, you can interact with that chat application:

  • open http://localhost:3000 in your browser.
  • send a message and observe the real-time message handling across different servers

About

a scalable chat app using redis for message distribution, kafka for streaming, and postgresql for storage, ensuring seamless cross-server communication.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published