What you will build
This tutorial consists of five parts:
- Part 1: Installing Seafowl locally, querying and adding data to it
- Part 2: Deploying Seafowl to Fly.io and uploading data to it
- Part 3: Querying Seafowl's cacheable GET endpoint
- Part 4: Putting Seafowl behind a cache or a CDN
- Option 1: ...using Varnish on Fly.io
- Option 2: ...using Cloudflare CDN
- Part 5: Building an Observable notebook backed by Seafowl
As a result, you will have built an interactive, dynamic and low-latency visualization of commodity supply chain data:
(if you want to skip the tutorial, you can click this link to experiment with the final result)
Your Seafowl instance will perform all data processing and query results will be cached around the world and delivered to your users in milliseconds.
This tutorial follows the Diátaxis principles for writing tutorials. It ignores options and (most) alternatives, offers minimum explanation and only shows one way of working with Seafowl. We provided footnotes1 around the tutorial to help you jump off to other resources.
This tutorial is designed to be doable by Web developers and data analysts
alike, so we don't put many requirements on your knowledge. If you've heard
curl", you'll be fine.
In addition, this tutorial assumes that you have some familiarity with databases and SQL queries. Seafowl uses SQL as its query language2. If you have only worked with data using languages like R or libraries like Pandas and need some help understanding the queries we'll be running, we recommend PopSQL's PostgreSQL tutorial series.
We will be deploying Seafowl to Fly.io, which has a free tier of 2 machines. This will be enough for our purposes. Normally, you shouldn't need to add a payment method to Fly in order to utilize the free tier, but in some cases you might be asked for one to prevent abuse.
If you stay below the free limit, your card won't be charged. See the Fly.io pricing page for more details.
If you want to deploy Seafowl behind a CDN, you need to have your own domain, managed by Cloudflare. Seafowl works with any CDN or HTTP cache. However, we use Cloudflare for this tutorial since it has a free tier.
We provide an alternative path for this part, in which you'll deploy Varnish in front of Seafowl. This fits within Fly.io's free tier but will limit you to a single region.
Apart from this, the tutorial doesn't require you to sign up for services that require payment.
This tutorial was tested on Linux but should work on OSX (with very minor modifications) or Windows (with minor modifications). On Windows, you might want to use the Git Bash shell for maximum compatibility.
Let's begin by installing Seafowl locally and writing data to it.
- Yep, just like this one!↩
- In particular, a subset of the PostgreSQL dialect as implemented by Apache DataFusion, as well as statements related to creating and writing to tables. See the full syntax reference for more details.↩