【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Medium 迁移到基于 React.js 和 GraphQL 的架构

  • 2018-05-20
  • 本文字数:794 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Medium 将他们现有的系统迁移到基于 React.js 和 GraphQL 的新架构。正如 Medium 工程师 Sasha T. Solomon 解释的那样,他们努力的两大目标是在不妨碍新功能开发的前提下,让用户逐渐转向使用新系统。

在对现有使用旧技术的代码库进行迁移时,需要做出一些艰难的决定。除了成本之外,他们必须考虑需要多长时间才能让用户感受到新系统的好处,而通常他们都希望不用等到整个迁移结束才能看到这一结果。此外,他们希望服务在整个过程中保持稳定,并且可以继续演化,如通过修复错误或实现新功能。

正如 Solomon 解释的那样,在他们的平台历经五年的开发之后,Medium 确实已经走到了这一步,

将整个系统迁移到新的工具和框架并非易事。在不影响功能开发的同时做到这一点?更难。

Medium 工程团队设计了一条服务迁移路径,旨在让用户尽快开始使用新系统,同时不妨碍现有系统的演化。

迁移的第一步是用 React.js 重写 Medium 的客户端应用程序,并使用 GraphQL 作为现有 API 的接口层。Medium 使用 Apollo Client 作为 GraphQL 客户端框架。

在这个阶段,旧系统和新系统共存,每个系统服务于一组不同的页面。这种方法的好处是不需要完全重写服务器端,也不会影响旧系统新功能的开发。Medium 团队采取的一项关键决策是使用 protocol buffers 将传统 API 描述为可与 GraphQL 交互的 schema。

根据 Solomon 所述,第二阶段迁移即将开始,服务器端代码将被重构为服务,为 GraphQL 层提供数据,GraphQL 层将使用 Sangria 作为服务器端框架。

预计GraphQL 的使用将带来一个巨大的优势,因为它的更加细化的结构直接映射到更模块化和更简单的服务,这反过来提升了它们的性能。新服务将通过 gRPC 与 GraphQL 服务发生交互,新服务可以与旧服务完全独立开发,旧服务仍然为旧 API 提供支持。

查看英文原文 Migrating Medium to React.js and GraphQL

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2018-05-20 19:002197
用户头像

发布了 731 篇内容, 共 432.2 次阅读, 收获喜欢 1997 次。

关注

评论

发布
暂无评论
发现更多内容

盘点微服务架构下的诸多身份验证方式

API7.ai 技术团队

微服务 身份认证 APISIX

「极狐GitLab 内容共创计划」强势来袭,丰厚权益等你赢取!

极狐GitLab

DevOps 云原生 写作 #运维 #DevOps

podman如何开启sock使用docker客户端进行管理

ModStart

葡萄城邀您参与「表格技术开发者新年分享会」,共话表格技术新未来!

葡萄城技术团队

大数据就业培训班哪家好?

小谷哥

安信证券资管清算重要业务在原生分布式数据库的创新实践

OceanBase 数据库

数据库 oceanbase

精准测试之覆盖

京东科技开发者

数据库 测试 代码 覆盖 企业号 1 月 PK 榜

从实战出发,聊聊缓存数据库一致性

C++后台开发

MySQL 数据库 缓存 中间件 后端开发

数据可视化图表系列解析——南丁格尔玫瑰图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

移动跨端框架最全盘点,16款总有一款适合你

Onegun

flutter 移动开发 跨端框架

小程序编译原理解析

Onegun

微信小程序 前端

2022 OceanBase 年度报告|用技术让海量数据的管理和使用更简单!

OceanBase 数据库

数据库 oceanbase

阿里云连续3年跻身Gartner全球云数据库管理系统领导者象限

云布道师

阿里云

RISC-V SIG 新进展:Chromium 等多个桌面软件登录欧拉开源操作系统

openEuler

firefox Linux 操作系统 openEuler risc-v

POI 中 getPhysicalNumberOfCells 与 getLastCellNum 有什么区别

ModStart

培训班有哪些学习前端开发的方法

小谷哥

数据治理:数据质量管理策略!

用友BIP

每个Java程序员都必须知道的四种负载均衡算法

JAVA旭阳

Java 架构 后端

NFTScan:优质 NFT 应具备什么?

NFT Research

区块链 NFT

为什么开发者这么看重SQL?看完这些应用场景你就明白了

雨果

sql 数据库管理工具 SQL开发工具

尚硅谷Airflow视频教程发布

小谷哥

培训机构与自学的优缺点有哪些

小谷哥

Java培训机构哪家比较不错

小谷哥

Camtasia Studio2023免费版本电脑屏幕录制软件

茶色酒

Camtasia Studio2022 Camtasia Studio2023

先行“蜀道”, 四川农信核心系统分布式转型

OceanBase 数据库

时序数据库 TDengine 签约中冶京诚,助力钢铁工业智能化

TDengine

数据库 tdengine 时序数据库

PHP 中命令行调用 escapeshellarg 函数中文问题

ModStart

Apache APISIX Ingress 1.6 正式发布!

API7.ai 技术团队

APISIX Serverless Kubernetes Ingress Controller

TDengine 签约航天五院,助力航天事业信息化

TDengine

数据库 tdengine 时序数据库

2023年汽车行业向好发展,火山引擎VeDI助力车企数智转型

字节跳动数据平台

数据库 大数据 数据处理

USB端口的ESD防护电路设计

元器件秋姐

经验分享 usb 电路设计 电源电路 ESD防护

Medium迁移到基于React.js和GraphQL的架构_语言 & 开发_Sergio De Simone_InfoQ精选文章