从零构建一个支持崩溃恢复的SQL两阶段提交事务协调器 从零构建一个支持崩溃恢复的SQL两阶段提交事务协调器
在分布式系统中,跨多个独立数据库执行原子性操作是一个无法回避的难题。一个常见的场景是,订单服务需要在订单库中创建记录,同时库存服务必须在库存库中扣减相应数量。如果其中一个操作失败,整个业务活动必须回滚,就像从未发生过一样。一个天真的实现可能
在Flutter Web构建流中利用Puppet实现声明式主题配置的自动化生成 在Flutter Web构建流中利用Puppet实现声明式主题配置的自动化生成
我们团队维护着一个基于Flutter Web的白标(White-Label)产品线,需要为超过20个客户品牌部署独立的、但功能相同的应用实例。最棘手的挑战并非功能迭代,而是UI主题的维护。每个品牌都有自己严格的视觉识别系统(VI),包括主色
2023-10-27
利用 Redis Streams 构建从 Firestore 到 Dgraph 的弹性数据同步总线 利用 Redis Streams 构建从 Firestore 到 Dgraph 的弹性数据同步总线
在一个复杂的业务场景中,我们常常需要将数据冗余到不同特性的存储系统中,以满足多样的查询需求。我们的主业务数据存储在 Firestore,它为客户端提供了出色的实时性和开发便利性。然而,随着业务发展,我们需要对数据进行深度的、复杂的关系分析,
基于Fastify与TypeScript在GKE环境中实现健壮的OIDC认证流 基于Fastify与TypeScript在GKE环境中实现健壮的OIDC认证流
我们团队在GKE上运行着数十个微服务,统一身份认证始终是个绕不开的痛点。最初各个服务自己维护用户体系,后来引入了统一的身份提供商(IdP),但每个服务都去直接对接OIDC协议,代码重复、配置繁杂,安全策略也难以统一。一个服务出现OIDC库的
2023-10-27
在 Go 与 Python 异构微服务中实现基于 OpenTelemetry 的端到端链路追踪 在 Go 与 Python 异构微服务中实现基于 OpenTelemetry 的端到端链路追踪
一个请求的生命周期在生产环境中很少是线性的。当一个分类模型的推理请求延迟从 50ms 飙升到 500ms 时,问题的根源可能散落在链路的任何一环:是 Go 编写的 API 网关处理逻辑过重?是网络延迟?还是 Python 侧的 BentoM
2023-10-27
基于 TypeScript 与 Kubebuilder 构建 ZooKeeper Operator 实现声明式配置管理 基于 TypeScript 与 Kubebuilder 构建 ZooKeeper Operator 实现声明式配置管理
我们团队面临一个棘手的现实:一个核心的、承载着巨大流量的遗留Java应用集群,其关键配置,包括功能开关(Feature Flags)、服务降级策略和动态路由规则,全部硬依赖于一个庞大的ZooKeeper集群。长久以来,对这些配置的任何变更都
2023-10-27
1 / 5