Layer Ordering in Axum
Layers added later wrap layers added earlier — outermost layer is applied last.
Router::new()
.route("/", get(handler))
.layer(auth_layer)
.layer(logging_layer)
Execution order: logging → auth → handler.
For ServiceBuilder, the order is reversed: first .layer() call is the outermost.