Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pixelcaliber/user-presence-service

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.
https://github.com/pixelcaliber/user-presence-service

flask heartbeat-monitor kafka python redis worker-pool

Last synced: about 1 month ago
JSON representation

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.

Awesome Lists containing this project

README

        

# 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