Router
Router sends each request to a service that can do it. The run result and the history show why it chose that one, and it stops when it can't tell whether the work was done.
Every run has one plain sentence about what happened, and a record for each service it considered, in the order it considered them.
When a service refuses before doing anything, the work moves to the backup service you chose. A timeout or a 503 stops the run instead, so Router never sends the work on again on a guess.
A failed call is never recorded as a success, and never sent again by itself. When a service may already have done the work, a person checks first.
A built-in test service lets you try a job with no other accounts. Test runs are counted apart from real ones.
Say what it takes and gives back, and which services can do it. Amounts say their unit and are never rounded.
By health, success, speed and priority, or by price when you choose. It skips any service it can't send the request to correctly.
Each run ends done, moved to a backup service, or stopped for a person to check. It can tell your systems by webhook.
A timeout or a 503 stops the run, and a person checks the service before anything is tried again, because it may already have done the work.
Yes, when an admin gives price a weight. A service that hasn't said what it charges can't win on price.
Yes. The built-in test service does nothing outside Cadreen, and you choose how it behaves: succeed, refuse, time out, and more.
No. A request in another currency than the job's can't be priced, and an amount is never rounded to fit a service.
Yes. A rule can hold a run until a person approves it in Decisions. Nothing is sent while it waits, and if they approve, it goes once, exactly as they saw it.
Choose the services. Router tells you why it picked each one.