擴充服務架構

已完成

在擁有已設定好的 Express.js 型應用程式而能夠透過 REST API 路由來存取 PostgreSQL 資料庫之後,您就可以開始實作前端 Next.js Web 應用程式以提供管理功能。 雖然您可以使用 Express.js 來建置前端介面,但您決定遵循服務型架構,分開實作前端和後端功能。

注意

您一樣可以使用 Next.js 來實作 REST API 路由。

注意

Next.js 是開放原始碼的前端開發 Web 架構,可支援伺服器端的轉譯。

如何擴充服務架構

為了因應快速回應能力、創新功能和零停機時間的需求,應用程式會有越來越多的功能,因此往往會逐漸變得複雜。 雲端原生應用程式透過讓其鬆散結合的元件彼此分開,能對開發和實作這些功能有所助益。

在您的案例中,Express.js 應用程式會公開 REST API,讓您能夠將詳細目錄資料新增至 PostgreSQL 資料庫。 為了觀察資料並執行資料管理工作,您打算使用 Next.js 應用程式。 這便是 CQRS 型方法的範例。

CQRS 會將用於讀取和用於寫入資料的模型分開。 此程序涉及將系統的作業分成兩個不同的類別:

  • 變更系統狀態的命令。
  • 只會傳回結果,而不會影響系統狀態的查詢。

在某些情況下,CQRS 不只會將作業分開,還會納入分別用於讀取和寫入的不同實體資料存放區,並透過複寫功能讓兩者保持同步。

注意

在更複雜的案例中,CQRS 系統可能會針對更新實作事件來源,以便只儲存事件,而不儲存實際的資料。

您將用來實作此模式的兩個服務都有自己的資料模型,會分別對應到目標資料庫中的實際資料。 由於這兩個服務彼此分開,因此能從與雲端原生應用程式元件相關聯的功能獲益,包括獨立的縮放、程度有所提升的復原能力,以及對於更新的支援,而不需要重新架構整個應用程式。