内容来自官方文档,以前是通过源码参考学习,目前官方文档已经有了完整的说明了
实际上此图关于workflow 部分有点老了,新版本支持不少其他pipeline能力了
简单说明: 元数据存储基于mysql,索引使用了es,http server 基于了dropwizard 框架(内部基于jersey 开发很方便)
对于元数据部分,openmetadata 基于自己的schema框架开发了python的以及支持通过sdk 模式(push),索引的处理
基于了change event handler (实际上是利用了jersey 的filter),schema 部分基于了jsonschema2pojo ,api 基于了swagger
openapi 标准生成
openmetadata 新版本的设计还是比较简洁的,而且官方内部设计文档也是很不错的参考(基于c4 模型画的)
https://docs.open-metadata.org/developers/architecture/code-layout