This blog shares our experience organizing variant types of Error in a complex system like GreptimeDB, from how an error is defined to how to log the error or present it to end-users. Such a system is composed of multiple components with their own Error definitions. How we usually handle an error in Rust A few standard libraries in Rust provide Error structs that implement std::error::Error, like

