视频

了解更多
速度和效率是当今快节奏商业环境中卓越的标志。
陷入手动、僵化流程的组织将承受着笨重架构的重担,并且将永远落后于业务机会。
但那些实现了流程自动化的组织将更加高效、更加灵活, _并且更有可能_ 经历增长。这就是为什么组织需要分布式业务规则管理系统 (DBRMS)。
Vishrut Kohli 希望对商业界产生影响,因此构建了他自己的 DBRMS Bonsai。通过使用 Redis,Bonsai 保证用户能够使用应用程序实时自动化流程,通过减少滞后的可能性来最大程度地提高生产力水平。
让我们来看看这个应用程序是如何制作的。但在我们深入探讨之前,我们要指出,我们还有许多创新的应用程序供您在 Redis Launchpad 上查看。
因此,如果您喜欢这篇文章,请在阅读完之后浏览一下!
您将构建一个分布式业务规则管理平台,该平台将帮助企业在整个企业范围内创建、管理和实施可扩展的业务规则。许多业务任务可以自动化,并释放出可以投资于业务其他方面的额外资源。
该应用程序将使组织能够指定、部署和管理业务决策规则和决策逻辑,以便应用程序能够始终如一地快速做出明智的决策,无需人工干预。
下面,我们将重点介绍您需要哪些组件来使该应用程序栩栩如生,并引导您完成实施过程的每个步骤。
准备开始了吗?
好的,让我们直接开始。
确保您的 Redis Stack 数据库已启动并正在运行
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest
该项目使用 Create React App 初始化。
git clone https://github.com/redis-developer/bonsai-frontend
yarn install
在开发模式下运行应用程序。
打开 https://#:3000 在浏览器中查看。
如果您进行编辑,页面将重新加载。
您还将在控制台中看到任何 lint 错误。
在交互式监视模式下启动测试运行器。
有关更多信息,请参阅有关 运行测试 的部分。
构建应用程序以进行生产,并将其放到 build 文件夹中。
它会在生产模式下正确捆绑 React,并优化构建以实现最佳性能。
构建已缩小,并且文件名包含哈希值。
您的应用程序现在已准备好部署。
有关更多信息,请参阅有关 部署 的部分。
注意:这是一次性操作。弹出后,您将无法返回!
如果您对构建工具和配置选择不满意,您随时可以弹出。此命令将从您的项目中删除单个构建依赖项。
相反,它会将所有配置文件和传递依赖项(webpack、Babel、ESLint 等)复制到您的项目中,以便您完全控制它们。除了弹出之外的所有命令仍然有效,但它们将指向复制的脚本,以便您对其进行调整。此时,您将独自一人。
您不必始终使用弹出。精心策划的功能集适合中小型部署,您不应该感到有义务使用此功能。但是,我们理解,如果在您准备好时无法对其进行自定义,那么此工具将毫无用处。
git clone: https://github.com/redis-developer/bonsai
pip3 install -r requirements.txt
python3 manage.py runserver
关键字
最合理的规则划分方式是基于命名空间。命名空间是一组规则,这些规则将对一组数据进行评估。例如,在这篇文章的后面,您将构建一个用于忠诚度管理系统的命名空间,所有相关的规则都将保存在该命名空间下。
{
"tax_system": {}
}
这里的命名空间为:tax_system.
JSON.SET namespace_name . {}
实体指的是命名空间的输入,在评估命名空间中存在的规则后,将提供输出。
例如,我们想要创建一个规则来确定住在安大略省多伦多市的公民的税收价值。此外,此人缴纳 35% 的所得税。因此,我们有两个变量——省份和城市,但只有一个输出税率。
因此,在这种情况下,安大略省的谓词(输入)的一个示例可以是一个包含 4 个部分的谓词
{
"attribute_name": "Province", # the name of your input
"operator": "eq", # type of operation
"type": "string", # type of input such as INT or STRING
"value": "Ontario" # value of the input you want to gove
}
每条规则都是一个命令,该命令决定对任何特定输入(实体)应该输出什么。每条规则将通过以下格式保存在命名空间中:安大略省和城市是多伦多,税率为 35。
这是规则对象:
{
"tax_system": {
"123456": {
"id": 123456,
"namespace": "tax_system",
"rule_description": "this is a test rule",
"predicates": [
{
"attribute_name": "Province",
"operator": "eq",
"type": "string",
"value": "Ontario"
},
{
"attribute_name": "City",
"operator": "eq",
"type": "string",
"value": "Toronto"
}
],
"result": {
"attribute_name": "tax_rate",
"operator": "eq",
"type": "string",
"value": "35"
}
}
}
}
这里的命名空间为:loyalty_system,规则 ID 为:123456.
JSON.SET namespace_name .rule_id rule_object
JSON.GET namespace_name
JSON.GET namespace_name path .rule_id
在主屏幕上,单击“创建”。
接下来,填写不同的字段以完成规则的创建。
创建规则后,您将能够以流程图的形式轻松地可视化它们。
评估流程包含用于创建规则的所有属性。该应用程序具有一段代码,该代码使用模式匹配算法来查看哪条规则最适合实体,以及发出执行规则的顺序。
RedisTimeSeries 允许您可视化所有指标,并帮助您根据所有规则在其命名空间中的性能做出数据驱动的决策。
TS.ADD ruleId * 1
DBRMS 平台可以解放员工和企业,让他们不必执行对组织至关重要但耗时且单调的任务。通过 DBRMS 平台自动化这些任务可以彻底振兴组织,让所有员工将注意力集中在不太琐碎的任务上。
但是,为了使 DBRMS 系统有效,它需要由实时数据库驱动,以始终如一地保证卓越的性能水平。即使是短暂的延迟也会使流程效率停滞不前,从而对生产力产生负面影响。
得益于 Redis,所有业务规则都可以在实时状态下进行管理、更新和维护。这使您可以实时洞察性能,并做出即时的数据驱动决策,帮助您抓住业务机会。
如果您想了解更多关于 Bonsai 的创建过程,请务必观看 Vishrut 的 YouTube 视频。但这还不是全部... 我们还提供了一系列创新的应用程序供您在 Redis Launchpad 上查看。
来自世界各地的程序员正在利用 Redis 的魔力,对日常生活产生影响。
快来一起体验吧。获得灵感。享受 Redis 的乐趣。
Vishrut 是一位全栈开发人员和数据爱好者,精通 Python、MATLAB/octave 和机器学习算法。如果您想及时了解他的所有项目,请务必在 GitHub 上关注他。