Shopify应用机制开发者如何利用EventBridge进行扩展

Shopify eventbridge集成

如果你为Shopify开发应用,你可能会很清楚,扩展你的应用来接受直接来自Shopify的webhook流量是很有挑战性的,特别是当你的用户进行限时销售时。为了管理这些流量负载,您可能已经注意到,自动伸缩并不总是发生得足够快,无法跟上,而且大型服务器很快就会变得昂贵。

今年,我们推出了一个更好的解决方案:与Amazon EventBridge的集成,它允许你使用事件总线接收Shopify的webhook。理论上,EventBridge应该能让你在构建可扩展系统的同时降低基础设施成本。

但在实践中是怎样的呢?

我们采访了Shopify应用程序的开发者艾萨克·鲍恩机械师锁匠来看看EventBridge是如何影响他在Shopify上的体验的。

webhook的挑战

Webhooks是一种工具,它允许您在商店发生事件后执行代码,方法是在商店发生事件后向您发送警报。Webhooks允许你将用户商店中的事件与应用程序响应的特定操作连接起来。

webhook在订阅的基础上工作——订阅特定类别的事件,并注册一个HTTP端点来接收与该事件相关的webhook。当该特定事件发生在用户的商店时,您将收到一个带有JSON有效负载的webhook,其中包含相关对象的副本。

然而,当大量事件发生并压垮您的应用程序基础设施时,问题就会出现。当大型商家开始使用你的应用,或者你的用户举办限时抢购时,这种情况尤其普遍。OB欧宝娱乐APP这些涌入的数据意味着你的应用基础设施可能无法跟上流量的冲击,这可能会导致应用体验的中断。为了解决这个问题,许多应用程序开发人员通常会运行功能强大的服务器,以确保它们能够处理突发的流量,或者构建复杂的排队系统。

成功使用webhooks的隐含假设是,您的基础设施可以跟上Shopify的步伐。选择使用webhooks意味着你的应用程序必须跟上Shopify活动的潜在负载——这是一项艰巨的任务,特别是对于较新的应用程序。

这就是Amazon EventBridge的用武之地。EventBridge是一个无服务器的、事件驱动的、通过标准HTTP接收webhook的替代方案。与EventBridge集成后,您可以直接将事件数据发送到AWS,而无需自己处理所有流量。

像EventBridge这样的事件驱动架构在你和Shopify的巨大规模之间建立了一个无限大的缓冲。它允许您以适合您的技术堆栈的速度处理事件,而不会感到不知所措。它具有高度可扩展性和弹性,允许您接受更多的webhook流量,同时降低基础设施成本和复杂性。

“像EventBridge这样的事件驱动架构在你和Shopify的庞大规模之间建立了一个无限大的缓冲。”

因网络钩子失眠

艾萨克·鲍恩(Isaac Bowen)以这样或那样的方式与Shopify平台合作了十年。

“就在10多年前,我为一款名为Gatekeeper的应用程序写了第一行。那是2010年,《gatekeeper》是Shopify App Store上的前100款应用之一。

从那以后,艾萨克对Shopify的参与越来越多。Lightward他创立的公司Shopify App Store现在有两款应用:Gatekeeper的继任者锁匠,机械师

艾萨克解释说:“我一直喜欢了解事物是如何运作的,我总是很高兴看到事物变成它们想要的样子。”“这是我做任何事情的潜在灵感来源。《机修工》就是一个很好的例子。它的核心概念是四年前的,我在两年前发布了这个应用程序。整个过程就是倾听这个东西真正想要成为什么样子,以及它想要如何工作。如今,Mechanic是一款改善开发者与商家关系的工具,它让开发者能够快速解决特定的自动化问题,让他们能够利用自己的技能编写代码,同时也让开发者能够轻松地交出一款无需代码便可轻松进行商家配置的最终产品。我们还有近300个预先构建的‘任务’,商家可以从货架上拿下来。”

Shopify eventbridge集成:标题机制用户界面的截图
机械师的用户界面。

当Isaac在头脑风暴想出Mechanic的想法时,在Shopify中实现工作流自动化的唯一途径就是创建一个应用程序——即使对于经验丰富的开发人员来说也是一项艰巨的任务,更不用说那些希望简化流程的非技术商人了。

艾萨克意识到,任何与Shopify合作的人都可能接触过液体Shopify的模板语言。因此,为了获得最大的灵活性,Mechanic将Liquid引入事件过程,允许用户将传入的事件视为Liquid变量,并使用Liquid模板呈现要执行的动作的定义。

这样做的好处是,开发人员可以构建任何他们可以想象的自动化,只要他们了解Liquid。它还允许大多数从未使用过编程语言的商家利用自动化的力量。对于那些准备探索Liquid的商家来说,自动化背后的代码只需点击一下即可。

Shopify eventbridge集成:从力学库中添加任务
从机修工的库中添加一个任务。

机制的工作原理是基于用户商店中的特定事件自动执行工作。

艾萨克解释说:“虽然机械师有几个事件域,但最繁忙的是Shopify。Shopify中的任何webhook都可以成为Mechanic事件。正常情况下,我们每分钟处理大约500个Shopify网络链接。”

虽然webhook方法可以满足Mechanic的目的,但不断扩大的规模给它的创建者带来了一个问题。

“机械使用正在稳步增长。使用它的大型商店越多,就越有可能出现随机、大规模的事件高峰。”“传统的webhook很难很好地解决这个问题。”

对于传统的webhook,停机总是有可能的。

“webhook是设置并忘记它,直到你的web服务器突然被一个随机的10倍的webhook流量饱和。它们不会影响我的日常生活,但它们绝对会影响我晚上的睡眠质量。”

你可能还喜欢:App Challenge冠军Tilo Mitra如何在Shopify App Store取得成功

引入EventBridge

事实证明,EventBridge正是Isaac一直在寻找的解决方案。

Isaac说道:“我对EventBridge的最初印象是,感谢上帝终于有人解决了这个问题。

我对EventBridge的最初印象是,哦,谢天谢地,终于有人解决了这个问题。

艾萨克·鲍文

作为额外的奖励,EventBridge的引入是一个顺利的过程。

“回顾我介绍EventBridge的原始提交,我们修改了10个应用程序文件,其中147个插入和54个删除。这是一个有趣的琐碎更新。因为我们让自己有能力一次一个地将商店从传统的webhook切换到EventBridge,所以我们需要编写更多的代码。”

除了易于实现之外,EventBridge还节省了Isaac的时间和资源,他一直计划确保自己的应用能够处理接收到的流量。

“我打算将我们的网络基础设施分成两部分:一部分用于正常的应用流量,另一部分用于Shopify的网络链接。EventBridge意味着我不需要这么做。我生活在这样的知识中,任何应用程序停机都意味着触发Shopify webhook重试,最好的情况是,或者最坏的情况是放弃Shopify webhook。延迟很糟糕,数据丢失真的很糟糕。EventBridge通过管道连接到SQS,这意味着我们对事件进入的保证突然得到了AWS本身可靠性的支持。”

现在Mechanic已经与EventBridge整合在一起,Isaac的精力可以用在开发应用上,而不是担心如何处理不断增长的流量。

“EventBridge意味着我们可以不假思索地消费任何规模的活动。这意味着启动新容量所需的时间不再是web请求等待或被丢弃的时间:所有这些请求现在都只是SQS中等待的事件。我们的SQS轮询器比我们的web服务器运行得更有效率,而且由于我们的绝大多数网络流量都是webhook,所以现在我们的整体运营更加紧密,因为EventBridge也在其中。”

最后,这只是为Isaac的应用发展提供了一个更坚实的基础。

“网络钩子已经很可靠了,”他说。“使用EventBridge使我们能够匹配这种可靠性。而且,我现在睡得好多了。”

webhook已经很可靠了。使用EventBridge使我们能够匹配这种可靠性。而且,我现在睡得好多了。

艾萨克·鲍文

你可能还喜欢:从信仰的飞跃到建立新的未来:Chatdesk创造新工作的愿景

与机械师一起展望未来

Shopify eventbridge集成:带有图像的标题机制应用程序列表
机械的应用程序清单

对于Isaac来说,EventBridge这样的工具使他能够建立自己想要在世界上看到的公司愿景。

“Lightward的整个观点是一个运行实验,询问我们是否真的可以运行一个可行的操作,我们的主要决策启发只是,'这感觉像是一个走向光明的决定吗?“我们能像这样经营企业吗?”看来我们可以。:)”

这一理念也延伸到了他的应用开发方法中。Isaac与其他考虑是否启动或扩展业务的开发者分享了以下建议:

“创造想要存在的东西。不是因为它有利可图,也不是因为它容易(尽管也可能是这些原因)。建造属于这个世界的东西。与那些显然也在这么做的人和平台建立联系。这就是为什么我首先开始做SOB欧宝娱乐APPhopify的工作。没有多少公司会像Shopify那样关注,从而按照他们的方式构建东西。引入EventBridge集成只是反映这一过程的一系列决策中的一个,证实了我每天做出的坚持下去的决定。在你的代码中,在你的业务中,在其他任何事情上,都要做出这样的选择,这就是全部。”

创造想要存在的东西。不是因为有利可图,也不是因为容易。

艾萨克·鲍文

还有一个更具策略性的建议:

此外,在SQS队列上设置年龄监控。这也很重要。”

使用EventBridge进行缩放

有了EventBridge的无服务器、事件驱动的架构,Isaac已经能够从一个基础设施中受益,这个基础设施可以更容易地扩展,同时降低基础设施成本,并且无需担心他的应用程序是否会崩溃,从而获得内心的平静。

作为应用开发者,与EventBridge集成可以帮助您以更具可扩展性和成本效益的方式发展应用和业务,这样无论用户带来多少流量,您都可以继续为用户提供出色的体验。

主题:

借助Shopify合作伙伴计划发展您的业务

了解更多