Skip to content

Enables real time user-presence functionality which marks user active/inactive based on last user activity using heartbeat mechanism, received from the client (here: mouse-up mouse-down movements) and comparing it with a threshold time quantum.

Notifications You must be signed in to change notification settings

pixelcaliber/user-presence-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

user-presence-service

Part of chat-application microservices: Enables real time user-presence functionality which marks user active/inactive or online/offline using HEARTBEAT mechanism based on last user activity received from the client timestamp (here: mouse-up mouse-down movements) and comparing it with a threshold time quantum.

  • Worker running infinitely, checking for user's last timestamp and if found more than the threshold time quantum (~10 mins) mark them as inactive in the user-presence database (here: postgres)
  • Utilizes heartbeat mechinism to query for user status using pooling
  • utilized redis cluster to store the last active timestamp; evicition pollicy: LRU and cache size: 100mb
  • has enpoints for:
    • updating user's last active timestmap in the redis cluster
    • retrieving the user's last active timestamp from the redis cluster
    • querying for user's active/inactive status in the database (here: postgres)

tech-stack: Kafka, Redis, Postgres, Python, Flask, Postgres

About

Enables real time user-presence functionality which marks user active/inactive based on last user activity using heartbeat mechanism, received from the client (here: mouse-up mouse-down movements) and comparing it with a threshold time quantum.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published