= The redundant Statement

.Syntax
[source,unlang]
----
redundant {
    [ statements ]
}
----

The `redundant` section executes a series of statements in sequence.
As soon as one statement succeeds, the rest of the section is skipped.

[ statements ]:: One or more `unlang` commands.  Processing starts
from the first statement in the list.
+
If the selected statement succeeds, then the server stops processing
the `redundant` section. If, however, that statement fails, then the
next statement in the list is chosen.  This process continues until
either one statement succeeds or all of the statements have failed.
+
All of the statements in the list should be modules, and of the same
type (e.g., `ldap` or `sql`). All of the statements in the list should
behave identically, otherwise different requests will be processed
through different modules and will give different results.

In general, we recommend using the
xref:redundant-load-balance.adoc[redundant-load-balance] statement
instead of `redundant`.

.Example
[source,unlang]
----
redundant {
    sql1
    sql2
    sql3
}
----

// Copyright (C) 2020 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
// Development of this documentation was sponsored by Network RADIUS SAS.
