Business Rules Engine is a technology (or pattern) for resolving specific user/system/permission/language-related conditions. It provides a convenient way to understand feature availability for the brand, account, or particular user, without knowing which actual conditions are involved in the check.
Why is such an API needed?
In order to better understand the approach, take a look at this JSX example:
<div>
{(user.isAdmin && account.balance > 0) && (
<button>Add users</button>
)}
</div>
Obviously, these UI conditions are trying to figure out some specifics of the current state of the account and understand whether an action is permitted or not. Imagine now that under some other system conditions (the account is a trial, for example), there is no such case as balance; this system state has something a...