database - 云数据库或身份验证服务是否被视为外部因素?(C4 型号)
问题描述
这是我的问题:我正在尝试为我的个人项目创建C4 模型,这让我开始思考是否将 MongoDB Atlas 等云数据库或 Auth0 等身份验证服务视为外部因素?我做了一个例子:
容器内
容器外(外部因素)
我是否正确假设这些系统(如云数据库)是我的系统与之交互的外部因素?我没有部署数据库,我使用的是他们的系统,对吗?Auth0 和其他东西也是如此。所以我应该把它们放在外面,就像作者一样……或者不是?
解决方案
从 c4model.com 常见问题解答...
数据存储服务应该显示为软件系统还是容器?
一个常见问题是,Amazon S3、Amazon RDS、Azure SQL 数据库、内容交付网络等服务是否应该显示为软件系统或容器。毕竟,这些是我们大多数人不拥有或自己运行的外部服务。
如果您正在构建一个使用 Amazon S3 来存储数据的软件系统,那么您确实不会自己运行 S3,但您确实对所使用的存储桶拥有所有权和责任。与 Amazon RDS 类似,您可以(或多或少)完全控制您创建的任何数据库架构。出于这个原因,将它们视为容器,因为它们是您的软件架构不可分割的一部分,尽管它们托管在其他地方。
因此,对于 Atlas,我会将其建模为您的软件系统中的一个容器。Auth0 我通常会建模为外部软件系统。
推荐阅读
- ios - RxSwift:单个可观察自我为零
- python - 在python中具有继承的类型注释
- aws-lambda - 从 DynamoDB 中获取按时间戳排序的数据
- netlogo - NetLogo 中的 if 语句
- http-status-code-403 - Keyrock 中无法解释的 403 错误“用户不允许执行该操作”
- neo4j - Neo4j with graphql:无法获取自引用类型
- git - 在 CLion 远程工具链中跟踪 git 提交时如何触发 cmake 重新配置
- c++ - Ncurses CTRL + s 挂起 getch()
- java - IllegalStateException :未标记级联 PERSIST 的关系
- c# - ECDSA 使用来自 Java 的公钥和签名验证 C# 中的签名