TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Best Architecture Patterns for Integrations?

7 点作者 Syntaf11 个月前
Hey all, anyone here have personal experiences or resources to share on how companies have successfully approached designing an architecture to handle N integrations syncing down into one application?<p>More often than not I&#x27;ve seen these systems designed around an inheritance structure which frankly I don&#x27;t agree with -- given enough time integrations will diverge enough that the once &quot;shared&quot; functionality no longer applies and you end up with a mess of inherited methods and overridden function chains.<p>I&#x27;m not _really_ sure what the alternative to OOO + inheritance is in designing an integration system though, Events? CQRS? Etc?

5 条评论

amacalac11 个月前
You&#x27;ll likely need to consider if the data egress or ingress is realtime, or asynchronous – it could well be a mixture of all of the above.<p>If the &quot;one application&quot; is yours, and you require strict adherence to a particular data format, you&#x27;ll be in a better position. You would design a contract to require all integrations to work against – a good example here would be something like Zapier, which defines API contracts that applications must adhere to, in order to work.<p>If you&#x27;re looking to integrate with many platforms with differing domain models, and you want to store them in the one application, you&#x27;ll need something a bit more free-flowing, and you&#x27;ll require a translator on your platform. You should absolutely version something like this from the beginning, since integrations can and do change their APIs at the drop of a hat. You&#x27;ll also want to be able to temporarily pause syncing data from individual integrations, since any API changes, or downtime on 3rd party platforms may very well impact your own uptime.
octo-andrero11 个月前
I would suggest you to split the question into multiple:<p>1&#x2F; What should be communication pattern you need: synchronous calls via API, message brokers (you configure routing rules inside message broker) or stream of events.<p>2&#x2F; How you should structure the code that processes your data once you&#x27;ve received it somehow. This is the point where it&#x27;s possible to start thinking about OOO and design patterns. Regarding your concern, looks like you mean premature abstraction. You may have N different code packages that do the integration and have nothing in common. This approach works well if you suspect that your integrations are going to evolve independently from each other. If you could provide some more details on what you&#x27;re going to build I can help.
ossm1db11 个月前
I am investigating this issue on my own as well, and data-oriented programming looks to be the most promising: <a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;data-oriented-programming" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;data-oriented-programming</a>
quintes11 个月前
From an architecture perspective you need to understand the sources, the kinds of data they provide and the frequency. Then you need to decide if you sync, async or batch, how and when.<p>Then you look at what standards&#x2F;protocols they use and architect for that
spdustin11 个月前
Meltano was my go-to for ingesting data, and dbt for transforming as needed to (ultimately) materialized views for the “core” consumer.