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