---
title: Upstash Redis
layout: docs
nav: demo
order: 7
---
<figure class="flex justify-center">
<img src="/static/images/redis-upstash.png" alt="Illustration by Annie Ruygt of a puzzle box figure holding two slices of cake" class="w-full max-w-lg mx-auto">
</figure>
[Upstash Redis](/docs/upstash/redis/) is used by the deep dive demo app for its [pubsub](https://redis.io/docs/latest/commands/?group=pubsub+external) capabilities, but it can do [so much more](https://upstash.com/docs/redis/overall/rediscompatibility+external).
In particular, Redis is useful for caching:
- [Node and Redis](https://redis.io/learn/develop/node/nodecrashcourse/caching+external)
- [Rails and Redis](https://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-rediscachestore+external)
In the deep dive demo app, updates are broadcast to all Machines via Redis, and then each Machine informs browser clients
of the update via [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API+external). The client requests
updated information from the application using HTTP GET.
In the deep dive demo app, updates are broadcast to all Machines via Redis, and then each Machine informs browser clients
of the update via WebSockets. The client requests
updated information from the application using HTTP GET.