首页 > 解决方案 > 云数据库或身份验证服务是否被视为外部因素?(C4 型号)

问题描述

这是我的问题:我正在尝试为我的个人项目创建C4 模型,这让我开始思考是否将 MongoDB Atlas 等云数据库或 Auth0 等身份验证服务视为外部因素?我做了一个例子:

容器内 容器内

容器外(外部因素) 容器外(外部因素)

我是否正确假设这些系统(如云数据库)是我的系统与之交互的外部因素?我没有部署数据库,我使用的是他们的系统,对吗?Auth0 和其他东西也是如此。所以我应该把它们放在外面,就像作者一样……或者不是?

标签: databaseauthenticationdocumentationdiagram

解决方案


从 c4model.com 常见问题解答...

数据存储服务应该显示为软件系统还是容器?

一个常见问题是,Amazon S3、Amazon RDS、Azure SQL 数据库、内容交付网络等服务是否应该显示为软件系统或容器。毕竟,这些是我们大多数人不拥有或自己运行的外部服务。

如果您正在构建一个使用 Amazon S3 来存储数据的软件系统,那么您确实不会自己运行 S3,但您确实对所使用的存储桶拥有所有权和责任。与 Amazon RDS 类似,您可以(或多或少)完全控制您创建的任何数据库架构。出于这个原因,将它们视为容器,因为它们是您的软件架构不可分割的一部分,尽管它们托管在其他地方。

因此,对于 Atlas,我会将其建模为您的软件系统中的一个容器。Auth0 我通常会建模为外部软件系统。


推荐阅读