This is my website that you can chat wit me.
The messaging system is built on top of these technologies:
WebSocket. It allows replies to be pushed to your web browser without needing any polling on the Web Browser JS side.
Push Notification. It allows you to see my replies even though you have closed the web app tab/window.
IndexedDB. It stores some messages on your browser to improve message loading UX.
The whole website uses a service worker cache to allow offline access to the website.
The backend is developed using Django Rest Framework. It stores data in PostgreSQL database. The cache, session, and message broker is set up to use Redis.
The frontend is developed using React/Redux framework.
The operation is using AWS infrastructure: CloudFront, Application Load Balancer, Autoscaling, EC2 spot instances, RDS PostgreSQL, ElastiCache Redis, and S3.
The AWS resources are defined using Terraform.