Integrations Are Everything
In This Article
As the pace of transformation continues to accelerate, it necessitates that systems talk to each other -- because consumers and employees demand the seamless experience that can come from it. It can seem simple -- just tidy up our systems and streamline them, but what companies often don't realize is that building distributed systems can be as complex as the web of various systems that need to be integrated. This is due to the fallacies of distributed systems , specifically, number one on the list: "the network is reliable." While networks are often successfully connected, it is the brief intermissions where they are not, or are slow, that makes integrating software systems incredibly challenging.
Most brands believe having disparate systems is a problem uniquely suited to their industry, but in truth, we see it in restaurant chains, retailers, grocers, healthcare systems… the list goes on and on. It's a major problem to solve for almost any business. This is because more software is moving to a SaaS model that is hosted by provider, and not by you.
Connecting these systems so that data is reliably and deterministically accurate relies upon more complex architectures than simple internal corporate web apps employ. Driving distributed systems within your organization isn't a one-size-fits-all solution, but here's two different common architecture approaches we've seen. We know this is both a technical and business decision, so I've listed out the advantages and disadvantages of each option.
In Point-to-Point, systems communicated directly to each other. As each new system is added (or replaced), every other system that integrates with that system must be updated. When only two systems exist, only one connection is required. As you move to four systems, six are required. For the math nerds out there, the equation for connections is 1/2 * n * (n - 1).
- The highest level of simplicity, from a technical standpoint.
- Time to market is short for a small number of systems.
- The value engineered option, at least for the short-term.
- There can be a combinatorial rise in complexity as other integrations are added.
- It is costly to implement new integrations.
- It will be costly to change existing integrations.
This is a cost-effective starting point for many companies, but many quickly graduate from this pattern, especially for business-critical systems.
Hub-and-spoke contains a central hub, responsible for all communication to each system. This allows sub-systems to not require knowledge of each other, alleviating the burden of having to integrate with each one. While this does lower cost and complexity as system integrations become larger, it does require larger up-front investment in the hub itself.
- Can be updated without changes to other systems.
- Communication can be synchronous or asynchronous.
- Allows for stronger data-drive decision making -- allowing data from multiple services and sources to be combined.
- There's a higher up-front cost.
- It can become a bottleneck if not designed and built properly.
- It will be more complex to operate.
One size does not fit all
As previously mentioned, these are just two common architecture patterns. Your current systems, size, growth targets and investment budget will all affect how to best architect your solution. Knowing when to employ a messaging system, data streaming or caching can be daunting. If done poorly, it can lead to cost overruns and a less reliable system.
Often brands are searching for the one thing they can buy to build what they need. And time and time again we uncover that no one single product, vendor, or company provides all the needed capabilities, nor does it make sense to build all of it in-house (see taxes for reference). There are times when no single (or multiple vendors for that matter) supply what your business needs to stay ahead of the competition.
The Great Dispersion is arriving. Moore's Law contributes to that trend as computing capability is getting into more of our devices, in retail environments, in our homes and on our bodies. As more systems are created and come online, a well-planned and designed architecture is critical to your business' success.