This project is a series of deep dives into various components found in the Seastar framework. Seastar is a C++ framework for building high-performance servers that can exploit the full set of capabilities found in modern hardware. However, Seastar represents a departure from the common approach of using a threaded model to build servers, and carries with it a steep learning curve.
At Redpanda Data we use Seastar extensively for building our core services, and nearly all the software I’ve written in the past year has been within the context of Seastar. When I started seriously learning how to write Seastar applications, I read the upstream Seastar tutorial which is an excellent resource for getting started. But once I had the basics down, I quickly realized that there was a big step that had to be taken to be comfortable using Seastar in practice. For this, I found that there was nothing nearly as helpful as understanding how Seastar and its suite of utilities worked internally.
Below you’ll find posts that explore various aspects of Seastar. To the extent possible I’ve included examples and discussions about related high-level concepts, but the content falls short of being a tutorial and is weighted towards exploring the code itself.