本周7篇架构文摘:
1、使用 Redis 进行实时 RAG 超越了矢量
LLM 很棒,但如果他们没有答案或根据不可靠的来源给出答案,他们可能会骗你。检索增强生成是一种解决问题的方法,同时基本上对 LLM 产量进行双重检查。用作矢量数据库的 Redis 可以帮助实现这一点,同时提高生成性能。请参阅文章中的架构。
2、本地优先的过去、现在和未来
Martin Kleppmann 讨论了 Local First 软件的开发和原理,追溯了其从早期 CRDT 研究到 Automerge 等当前实现的根源。Martin 提出了一个更精确的定义,其中包括多设备功能以及对网络和服务器故障的稳健性。演讲概述了用户和开发人员的益处,并提出了未来的方向,即采用通用同步服务来标准化协议并增强应用程序的互操作性。
3、纵深防御:现代网络安全的分层策略
安全策略包括加密、备份、访问控制、DoS 保护等等。现代软件非常复杂,黑客也非常先进,您不能只在这里或那里应用几种策略并感到安全。相反,您应该采用像纵深防御这样的整体方法,其中每一层都尽最大努力确保安全,假设所有其他层都已失败。
4、事件驱动 = 松耦合?没那么快!
直接端点调用被视为耦合。但耦合可以采取不同的形式,包括语义、时间、拓扑等等。Gregor Hohpe 描述了这些耦合并解释了消息和事件之间的区别。
5、TiDB——基于 Raft 的 HTAP数据库
不能让你没有论文就离开!通常,你要么使用 OLTP DB 来处理操作负载,要么使用 OLAP DB 来增强它以进行分析查询。另一种选择是让单一解决方案在混合模型中工作 - HTAP。TiDB 就是这样的,它正在处理 Bolt 内部的几乎所有有效负载。查找有关这个特殊数据库的论文以及它如何与多个 Raft 行和列存储组一起运行
6、幻读异常新手指南♂️
说到数据库,我想继续分享有关隔离异常的文章。这次是幻读——一个事务中读取另一个事务正在插入的数据。了解 MVCC 如何防止这种情况。
7、组织架构
Alex Ewerlöf 以一种非常有趣的方式讨论了软件架构如何受到组织结构的影响,以及组织树中的关系如何影响系统可靠性。虽然没有提供实用的解决方案,但读起来确实很有趣。