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. Status Quo of Rust's Error Handling A few standard libraries in Rust provide Error structs that implement std::error::Error, like st