這個故事的開始方式和它的標題一樣古怪。我於 2021 年開始整合推理,以找出在解決背包問題(例如 9、33 和 65 位元暫存器)時使用任意精度整數會發生什麼。我的想法是,靈活的字長將使解決背包問題的偽多項式時間演算法更有效。簡而言之,它確實有幫助,但最大的收益來自管道化

快進到 2024 年 4 月中旬。我們規劃了一個 MVP,從本質上將執行HiGHS等開源求解器的體驗從命令列轉移到瀏覽器中。賣點是這些過程可能需要數月或更長時間才能完成,並且不必爭論它們將幫助我們的用戶專注於優化而不是執行優化所需的基礎設施。

將日誌從 AWS 即時推送到瀏覽器是我以前從未做過的事情。我認為這與從 LLM 串流文字的問題大致相似,這是我以前從未做過的事情,最近已經有了大量的發展。一方面,即時日誌事件對 MVP 來說可能有些過大了。另一方面,即時渲染日誌看起來很漂亮,並且可以幫助我們提供像命令列一樣流暢的使用者體驗。我們就這麼做了。

irx.app

我們最初的計劃是使用Prisma Pulse在邊緣函數中訂閱 Postgres 寫入,該邊緣函數使用Vercel 串流回應將每一行標準輸出從HiGHSCBCSCIP傳送到瀏覽器。除了複雜性之外,該計劃還存在兩個主要問題。找到一個具有正確的表複製功能組合來滿足 Pulse 和我們後端的要求的託管 Postgres 實例並非易事,這導致了本文標題前半部分的荒謬之處。兩天內五次更換 Postgres 提供者所引發的一系列事件仍然令我震驚。

螞蟻威爾森推特

當來自 Supabase 的 Long ( @beertocode ) 提出挑戰時,骨牌效應開始了。他解釋說,他希望為使用 Supabase 進行建造的新人提供額外的推動力。如果我們在兩週內與 Supabase 一起建立並發布,他們將利用社交媒體上的超級粉絲來使此次發布成為一項重大活動。挑戰被接受了,挑戰確實如此。

在評估資料庫選項時,社群媒體機會通常不被考慮在內。然而,我們的發布目標是收集盡可能多的用戶回饋,因此這是我們不能忽視的因素。我對 Supabase 的產品幾乎一無所知,因此花了一個下午的時間閱讀了他們的所有文件。到那天晚上,我對於如何建立 IRX 有了一個完全不同、更簡單的思維模型。

Supabase 的匿名登入功能與行級安全性相結合,這意味著人們可以在發布當天使用 IRX,而無需執行註冊程序。我們談論的是零准入門檻,在 2024 年看似永無止境的「建立另一個帳戶並重置密碼」的循環中,我什至認為這是不可能的。

事實證明,匿名登入對我們來說非常有價值,因為它使近 300 人能夠在發布當天嘗試使用 IRX 解決混合整數程式 - 即使他們不知道 IRX 是什麼並且只是玩玩。我們從比我想像的更廣泛的背景中獲得了令人難以置信的反饋。

IRX 流量

我們的即時日誌流方法的兩個問題中的第二個問題直到我們實現該功能之後才出現。 Prisma Pulse 每個表最多有 20 個同時訂閱。直到資源洩漏瞬間消耗了我們的整個連接配額之前,這個限制並不明顯。如果將並髮用戶數限制在 20 個,則不會帶來良好的啟動效果,而且時間真的很緊迫。

IRX 啟動定時器

當 Long 在三小時後向我們發推文時,我們仍在除錯串流媒體。幸運的是,到目前為止,我已經閱讀了有關 Supabase 的所有內容,包括他們的即時事件配額表,該表支援開箱即用的 10,000 個並發用戶端。進行切換很容易,這很大程度上要歸功於 Supabase 的 TypeScript類型產生

除了一些背壓問題之外,我們還設法為在可能不同的現場實例上同時執行的三個求解器提供即時日誌流。

IRX基礎設施

IRX 解算器基礎設施

(IRX 內部基礎架構圖,作者: @baykovr

龍說得最好:

長推特

真正瘋狂的是,我因為 Supabase 整合而註冊了 Resend。他們的創辦人@zenorocha在發布前幾天炸毀了我們的 Twitter ,僅用一條推文就為我們的發布周流量增加了 16,000 次瀏覽。

芝諾·羅查在推特上

這是我在發布當天對 IRX 基礎設施的草圖:

IRX 發布日基礎設施

我們驚慌地發射了。感謝您對 Supabase 的挑戰!

Supabase 在 Twitter 上


原文出處:https://dev.to/supabase/changing-databases-5-times-in-48-hours-boosted-our-launch-to-35000-views-1oc2


共有 0 則留言