-
Notifications
You must be signed in to change notification settings - Fork 11
Home
Santanu Sinha edited this page Feb 3, 2022
·
4 revisions
Predicate based rules are a much needed component of many runtime decision making systems.Let's take a few examples:
- A communication system that selects wire templates based on payload
- An offer disbursal system that selects offers based on transaction details payload
- A traffic router that selects upstream nodes based on request payload
Hope tries to solve for this by providing a small expression language and evaluation engine.
- Hope provides well known idioms and operators to express complex matching logic
- Scalability and performance are central to the design of hope. As a result it provides ways to optimize re-evaluation paths for same rule and short circuits multiple same path evaluations in the same evaluation scope. Parsed hope rules are thread-safe, cacheable and reusable across millions of evaluations from many threads.
- Hope provides a set of well known/used/familiar functions and operator for clients to work with. Hope also provides ways for clients to plug in their domain specific functions to be used as part of rules.