Skip to content
Santanu Sinha edited this page Feb 3, 2022 · 4 revisions

Introduction

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.

Features

  • 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.

Table of Contents

Clone this wiki locally