2025 AI基础设施风向标,不看必后悔!#AI基础设施峰会 了解详情
写点什么

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

2018-05-20 19:002492
用户头像

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

关注

评论

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

墨天轮沙龙 | 清华乔嘉林:Apache IoTDB,源于清华,建设开源生态之路

墨天轮

数据库 国产数据库 apache 社区 Apache IoTDB

“阿里爸爸”最新Java面试指南,基础+框架+数据库+系统设计+算法

Java全栈架构师

Java spring 程序员 面试 架构设计

NFT挖矿游GameFi链游系统开发搭建

薇電13242772558

智能合约 NFT

云化XR,如何助力产业升级

3DCAT实时渲染

XR

云流化技术在汽车行业中的应用

3DCAT实时渲染

XR 云流化

什么是XR扩展现实,XR云串流平台有哪些

3DCAT实时渲染

XR 云XR

腾讯云的一场硬仗

ToB行业头条

NFT铸造交易平台开发详情

开发微hkkf5566

1 分钟 Serverless 搭建你的首个个人网站(完成就送猫超卡)

阿里巴巴云原生

阿里云 Serverless 云原生 网站

LeaRun.Java可视化拖拽编辑的BI大屏

力软低代码开发平台

充值满赠,IM+RTC+X 全通信服务「回馈季」开启

融云 RongCloud

“低代码”在企业数字化转型中扮演着什么角色?

优秀

低代码 数字化

程序员女友给我做了一个疲劳驾驶检测

华为云开发者联盟

人工智能 疲劳驾驶检测

wallys/WiFi 6 (802.11ax) 4×4 MU-MIMO 5GHz QCN9074 Single Band Wireless Module

wallys-wifi6

CloudXR如何推动XR的未来发展

3DCAT实时渲染

CLOUDXR

GameFi链游系统开发NFT技术

薇電13242772558

NFT gamefi

实时渲染和预渲染有什么区别

3DCAT实时渲染

渲染 实时渲染

ABAP-发布Restful服务

桥下本有油菜花

abap

先写API文档还是先写代码?

Liam

Java 前端 Postman 后端开发 后端技术

CODING 正式入驻腾讯会议应用市场!

CODING DevOps

日均 6000+ 实例,TB 级数据流量,Apache DolphinScheduler 如何做联通医疗大数据平台的“顶梁柱”?

白鲸开源

Apache 大数据 开源 Apache DolphinScheduler

小程序容器与物联网结合的方式

Geek_99967b

小程序 物联网

流批一体在京东的探索与实践

Apache Flink

大数据 flink 编程 流计算 实时计算

wallys/WiFi 6 (802.11ax) 4×4 MU-MIMO 2.4GHz QCN9074 Single Band Wireless Module

wallys-wifi6

小程序容器技术,促进园区运营效率提升

Speedoooo

智慧园区 小程序容器 园区运营

【合集- 行业解决方案】如何搭建高性能的数据加速与数据编排平台

Alluxio

人工智能 互联网 金融 科技 电信

如何使用物联网低代码平台进行服务管理?

AIRIOT

低代码 物联网 低代码开发平台 低代码,项目开发

边缘计算平台如何助力物联网发展

3DCAT实时渲染

边缘计算

Rust 如何实现依赖注入?

非凸科技

依赖注入 Trait 对象 编程语言‘ public

知名互联网房屋租赁服务公司物联网关键业务迁移上云实践

EMQ映云科技

物联网 IoT 云服务 emqx 6月月更

联想YOGA 27 2022,超强配置全面升级

极客天地

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