Data and state
Redis
Cache, event bus, workflow engine and locks.
Why we chose it
Medusa runs in-memory implementations of all four when Redis is absent, and they look fine until a second process exists. Declaring the Redis-backed modules explicitly is what makes a backend and a worker two halves of one system instead of two systems with the same name.
What it does here
Cache, event bus, workflow engine and distributed locking for every Medusa deployment.
The rest of the stack
- MedusaJSThe commerce engine, and the one we run our own business on.
- KubernetesThe reason the platform exists at all.
- Proxmox VEOur own virtualisation, rather than a hyperscaler's abstraction.
- PostgreSQLThe database we trust with orders.
- Next.js and ReactStorefronts that render on the server, because commerce is public.
- TypeScript and Node.jsOne language across the storefront, the backend and the plugins.
- S3-compatible object storageMedia and backups that outlive the container holding them.
- Our own DNSAuthoritative nameservers we operate ourselves.
- GitLabSelf-hosted source, CI and registry.
- StripePayments, without holding card data ourselves.
Running something like this already?
Tell us what you operate today and what hurts about it. We will tell you what we would change.