SEDA is a decentralized oracle network built with the Cosmos SDK. First, A user submits a data request, and then do a commit/reveal scheme. The SEDA chain tally modules process the reveals and apply any configured consensus filter.
A Data Request can include a consensus filter that uses the JSONPATH extension. If you have a JSON object like {"a" : "b"} the filter would be $.a. This allows for complex filter expressions with comparison operators and wildcards, and helps define what data is actually returned.
JSONPath was standardized in RFC 9535. When using wildcards, it states the following: "The order in which the children of an object appear in the resultant nodelist is not stipulated, since JSON objects are unordered." There IS no deterministic ordering. In blockchain land, this means consensus failures because the serialized values from different nodes appear different to each other.
Wait, shouldn't the algorithm be deterministic if it's all in the same language? I looked into this once for Golang. In many cases, such as dictionary iteration, Golang intentionally introduces randomness to operations so that users don't rely on undefined ordering semantics. I imagine this is the case here as well.
I imagine the JSONPath library has wildcard functionality built in, and this wasn't written from scratch. So, this feature of the filtering engine was never intentionally put in, but was a side effect of the underlying library. At least, these are my assumptions. Overall, a great blog post on the discovery and exploitation of a consensus failure.