Motivation

Serverless functions are great for many tasks with their dynamic scaling and flexible pricing models. But when you have a task which is composed of long running complex steps, it is not feasible to run it in a single serverless function. A simple solution is simply to offload complicated tasks from the serverless function. You can process those asynchronously in your preferred environment, this can be other serverless functions, serverless containers or traditional server based processes too. To offload your tasks, you need a reliable event queue. In this article we will use Upstash Redis for this purpose.

Scenario

You are…


Google Cloud Functions is the second most popular serverless execution platform. Similar to AWS Lambda it is stateless, namely you need to access external resources to read or write your applications state. In this post, we will introduce Redis as a database for your Google Cloud functions.

This tutorial shows how to build a serverless API with Redis on Google Cloud Functions. The API will simply count the page views and show it in JSON format.

See the demo: https://us-central1-functions-317005.cloudfunctions.net/helloGET

See the code: https://github.com/upstash/examples/tree/master/using-google-cloud-functions

  • Serverless compute: Google Cloud Functions (Node.js)
  • Serverless data store: Redis via Upstash
  • Deployment tool: gcloud

Prerequisites

  • A…


In this tutorial, we will implement a Serverless API using AWS Lambda and we will deploy it using AWS CDK. We will use TypeScript as the CDK language. It will be a page view counter where we will keep the state in Redis.

Check the Github repo for the source code.

AWS CDK is an interesting project which allows you to provision and deploy AWS infrastructure with code.

Currently TypeScript, JavaScript, Python, Java, C#/.Net are supported. You can compare AWS CDK with following technologies:

  • AWS CloudFormation
  • AWS SAM
  • Serverless Framework

The above projects allows you to set up the infrastructure…


Next.js is a very successful web framework that brings together server side rendering and static site generation. SSG speeds up your website thanks to CDN caching meanwhile SSR helps you with SEO and dynamic data.

Server side rendering is a great feature that helps you to write fullstack applications. But if you are not careful, the performance of your Next.js website can be affected easily. In this blog post, I will explain how to leverage Redis to speed up your Next.js API calls. Before that, I will briefly mention a simpler way to improve your performance.

Use SWR on your API calls

SWR is a very…


One of the best things about serverless is its ability to scale even in huge traffic spikes. But unfortunately, scaling is not free both financially and technically. That’s why developers need to control their applications’ scalability. Here are the main reasons you will need a rate limiting mechanism in your serverless application:

1- Protect your resources: If you’re providing a public API, traffic spikes can degrade the quality of the service, and may lead to a service outage for all your users. You need to protect your system against such cascading failures as well as self-inflicted DDoS incidents. A bug…


While developing the latency benchmark for the serverless databases (DynamoDB, FaunaDB, Upstash), I wished there was an API where I will record the latency numbers and get the histogram back. In this tutorial, I will build such an API where you can record your latency values from any application. It will be a serverless REST API with following methods:

  • record: Records numeric values into the histogram.
  • get: Returns the histogram object.

Motivation

I will show how easy to develop a generic API using AWS Lambda and Serverless Redis.

Step-1: Create a Redis (Upstash) Database

Create a database as defined at getting started

Step-2: Serverless Project Setup

If you do not have…


In this tutorial, we will develop a simple coin price list using GraphQL API of Upstash. You can call the application backendless because we will access the database directly from the client (JavaScript). See the code.

Motivation

We want to give a use case where you can use the GraphQL API without any backend code. The use case is publicly available read only data for web applications where you need low latency. The data is updated frequently by another backend application, you want your users to see the last updated data. …


In this article, I will compare the latencies of three serverless databases DynamoDB, FaunaDB, Upstash (Redis) for a common web use case.

I created a sample news website and I am recording database related latency with each request to the website. Check the website and the source code.

I have inserted 7001 NY Times articles into each database. The articles are collected from New York Times Archive API(all articles of January 2021). I randomly scored each article. At each page request, I query top 10 articles under the World section from each database.

I use serverless functions (AWS Lambda) to…


This tutorial implements an autocomplete API powered by serverless Redis. See the demo and API endpoint and the source code.

We will keep country names in a Redis Sorted set. In Redis sorted sets, elements with the same score are sorted lexicographically. So in our case, all country names will have the same score, 0. We keep all prefixes of country and use ZRANK to find the terms to suggest. See this blog post for the details of the algorithm.

Step 1: Project Setup

If you do not have it already install the serverless framework via: npm install -g serverless

In any folder run…


Designing a database for serverless, the biggest challenge in our mind was to build an infrastructure which supports per request pricing in a profitable way. We believe Upstash has achieved this. After we launched the product, we saw that there was another major challenge: Database connections!

As you know, Serverless Functions scale from 0 to infinity. This means when your functions get a lot of traffic, the cloud provider creates new containers (lambda functions) in parallel and scales out your backend. …

Noah Fischer

DevRel @upstash

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store