A curated list of resources related to Seastar, an industrial-grade C++ framework for building high-performance servers.
One of the key feature of Seastar is it's event-driven nature which makes it easy for it's user to write non-blocking, asynchronous code. Moreover, Seastar architecture is based on the following points:
-
Shared-nothing Design: Seastar uses a shared-nothing model that shards all requests onto individual cores.
-
Futures and Promises: An advanced new model for concurrent applications that offers C++ programmers both high performance and the ability to create comprehensible, testable high-quality code.
-
High-performance networking : Seastar offers a choice of network stack, including conventional Linux networking for ease of development, DPDK for fast user-space networking on Linux, and native networking on OSv
-
Messaging passing : A design for sharing information between CPU cores without time-consuming locking.
Systems and projects using Seastar
- Ceph - Distributed storage system for object, block, and file
- The seastar-based storage engine is called Crimson
- CPV - Web framework written in C++ and Seastar
- Chogori - Low-latency distributed OLTP database
- Parquet4Seastar - Parquet file format implementation for use in Seastar projects
- Pedis - Replacement for Redis written in Seastar
- Redpanda - Replacement Apache Kafka designed for modern hardware
- Scylladb - Replacement for Apache Cassandra and Amazon DynamoDB
- Shredder - Research prototype for SoCC '19 paper embedding v8 in Seastar
- SMF - RPC framework built for microseconds latencies using Seastar
Resources for learning Seastar
- Official tutorial - a comprehensive tutorial from the creators of Seastar
- Seastar internals - is a series of deep dives into various Seastar components
- Asynchronous Programming with Seastar - is a series of tutorials covering Seastar compnents
- Rolling your own MOM - a series documenting the MOZA middleware
Chedy Najjar |
Noah Watkins |