Homepoint公司使用Kafka改进其单体数据库架构

22-08-24 banq

Homepoint 是一家位于美国的大型抵押贷款批发商和贷方。Homepoint 的软件平台团队需要找到数据库自动化解决方案并改进其单体数据库架构,以提高质量和更快地响应客户。
该公司原来使用其贷款发放系统(LOS)数据库作为SSOT(单一事实来源),但这个数据库不支持自动决策,不支持通知,也不支持事件驱动的通信。
为此,该公司广泛使用 Kafka,构建了变更数据捕获 (CDC) 系统,并将 Kafka 作为新的单一事实来源 (SSOT)。通过这一切,Conduktor 大大简化了 Homepoint 需要做的工作,并降低了采用 Kafka 的门槛。

关于 Homepoint
Homepoint 成立于 2016 年,从第一天起就以云为先,拥有完全远程的 IT 员工队伍。
该公司不是一家银行,也不直接从事贷款业务,而是介于抵押贷款经纪人和房地美和房利美等融资组织之间,将其经纪人客户找到的抵押贷款出售给这些资助者。
Homepoint的大部分工作是在抵押贷款的发起阶段。发起基本上是抵押贷款的文书工作部分,借款人需要在获得资金之前打上每一个“I”和每一个“T”。作为抵押贷款批发商,Homepoint接收来自抵押贷款经纪人的抵押贷款申请,然后由Homepoint确保申请符合复杂的资格标准并提供定价选择。这个系统需要不同团队、系统和第三方机构之间的广泛协调。

Homepoint 挑战
为了提供他们所能提供的最好的服务,Homepoint 需要能够快速响应他们的经纪人客户,同时也向潜在的资助者提供高质量的数据。这提出了软件平台团队需要解决的两个不同的挑战。
1、对速度的需求
经纪人需要快速的决定,以便能够快速提供贷款决定。
2、高质量的数据
融资机构需要来自Homepoint的数据,这些数据有质量保障,任何变化都要实时沟通,以确保融资决策的准确性。

确保质量
向资助者提供数据的最大挑战与一个被称为 "重新披露 "的问题有关。在美国,贷款的任何变化,无论是费用、条款或任何东西,都需要在3个工作日内向所有各方重新披露。

重新披露曾经是由人工完成的,Homepoint的同事必须 "盯着看并比较",以判断是否有必要重新披露,并手动分配这些信息。你可以想象,这是一个非常耗时的过程。但这还不是全部,因为不重新披露可能会带来巨额的经济处罚--被称为 "cures"--意味着存在经济风险以及对Homepoint的声誉和服务质量的风险。

Homepoint需要找到一种方法来自动重新披露,以防止这些风险。然而,这说起来容易做起来难。

该公司原来使用其贷款发放系统(LOS)数据库作为SSOT(单一事实来源),但这个数据库不支持自动决策,不支持通知,也不支持事件驱动的通信。

解决方案
为了满足客户对自动重新披露的需求,Homepoint 部署了一个使用 Apache Kafka 构建的新 CDC 系统,允许在更改发生时立即响应:




在新系统中,LOS 数据库将信息发送到运行 Debezium 的 Change Data Capture。然后 CDC 节点将数据发送到 Kafka。
自动重新披露服务是用来监控任何更改,并将发现的任何更改发送到规则引擎。
规则引擎执行业务商业决策以确定更改是否需要重新披露,通过 Kafka 将其发送给消费者,并最终发送到仪表板以供最终用户查看。
处理所有这些数据库和系统非常复杂,尤其是像 Kafka 这样的系统,这就是 Conduktor 的用武之地。




Conduktor 使最终用户能够轻松过滤,使他们能够有效地专注于单个贷款,而不是搜索数百个应用程序。Conduktor 还提供project投射投影,仅显示 Homepoint 关心的消息的属性。
这一变化的结果令人印象深刻,流程效率提高了 20%,经济处罚减少了 50%。

交付速度
经纪人行动得更快将导致更满意的客户以及更多的业务完成;更快的发起系统是不费吹灰之力的。然而,Homepoint 早期的架构有些缓慢且笨拙,使公司无法提供他们想要的服务。
LOS 不支持事件驱动的通信,这意味着每个系统和用户都必须不断地轮询数据库。由于每个人都会不断地进行轮询,因此系统内的同步点对点集成将使其因 ping 和轮询而过载。再加上速度普遍较慢,这导致了延迟和定期超时。
解决方案
由于 LOS 缺乏关键功能,Homepoint 需要将功能从数据库中移走。他们通过使用 Kafka 作为他们的 SSOT 而不是 LOS 来做到这一点。




存储在 Kafka 中的 CDC 信息成为了真相的来源。同时,一个名为“NoCode Sidecar”的附加节点将信息物化回目标数据库。这将读取从 LOS 转移到目标系统的本地数据库中。
向 Kafka 作为 SSOT 的过渡导致更快的部署、减少的点对点集成,并导致数据在整个架构中变得更加一致。
 

1