This article explains our decision to use Redis at Woovi.
Redis is a versatile database that can solve many problems when scaling a Fintech.
Cache
The first problem that Redis solves is to be able to cache data.
You can use cache to reduce the workload from external APIs or the main database.
We use it to cache slow/expensive external APIs, OAuth2 tokens, and account balances.
Distributed Lock
We use Redis to create distributed locks to make concurrency safe in some scenarios like updating the balance of an account.
A simple distributed lock implementation using Redis
Message Queue
We use Redis to create a message queue and async batch processing using BullMQ
The simplest Message Queue using Redis
Pub/Sub
We use Redis to create a publisher/subscriber to make our application real-time using WebSockets and GraphQL Subscriptions.
Rate Limiting
We also implement rate limiting using Redis to avoid DDoS attacks, Credential stuffing, Brute force attacks, and Data scraping.
In Conclusion
Redis is a versatile database that can be used in many scenarios to solve many problems as you scale.
If you are not using Redis, it could be a good addition to your tech stack
Woovi is an innovative startup revolutionizing the payment landscape. With Woovi, shoppers can enjoy the freedom to pay however they prefer. Our cutting-edge platform provides instant payment solutions, empowering merchants to accept orders and enhance their customer experience seamlessly.
If you're interested in joining our team, we're hiring! Check out our job openings at Woovi Careers.
Photo by Amélie Mourichon on Unsplash
Top comments (2)
How to use it for Rate Limiting?
The only way I think is to store data about requests and query them on each request to see if the client has reached the rate limit. Is that correct?
I will write a practical article about it
you can implement many rate limit algorithms in Redis redis.io/glossary/rate-limiting/