TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Best Architecture Patterns for Integrations?

7 pointsby Syntaf11 months ago
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 comments

amacalac11 months ago
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 months ago
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 months ago
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 months ago
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 months ago
Meltano was my go-to for ingesting data, and dbt for transforming as needed to (ultimately) materialized views for the “core” consumer.