Tim Ward

Yeah. So I mean, our team have been working with many different types of technologies. One of the ones that we've been focusing on and we use quite heavily within our platform is a graph database. So this this really this concept of the network. And I think we've been spoiled by by working with it, because essentially, it office offers us the highest fidelity data structure that we have to be able to map data and playing with that. It kind of gave us some inspiration on what are the elements of this this hub architecture. And so the first obvious one would be your hubs. So In a graph world, this would be nodes. Those hubs are essentially responsible for managing as you put it, the localized rules. So they don't they're not interested in knowing what is global. Think about this. What does what does that other local hub? Think about this? What about my parent hubs, like a region hub? No, no, they want to manage the specific rules for their location. And so when you have this hub, you need, obviously some way for hubs to talk to each other. And that's where this concept of this element of a hub orchestrator comes in. And that's actually probably not too hard to see this analogy played out in other areas. A good example would be, we use Kubernetes to orchestrate our containers we use in the Apache world or open source world we use often zookeeper to orchestrate our different data stores or to keep In some type of sync between different environments, so there are many other ways that fact we use this type of, or at least it's available to us this day, this type of architecture patterns. So obviously, if you've got these hubs, the hub orchestrator is responsible for, okay, well, how do I talk from one hub to another, and there's a really good analogy I like to use here, which is travel. Now, when I travel from Copenhagen to the US, there is a border setup, which essentially says, For you to enter, you need to do these things. Well, first of all, you need a valid passport, okay? You potentially need a visa, you potentially need to have a work visa, for example, depending on what you're doing, and you're not allowed to be in any of these lists, such as you're not allowed to be on any blacklists or embargo lists that we have in our company in our country. And then If you check all those boxes, feel free to come in. And you can really start to apply that same kind of concept, but replace people with data. So how does data travels from one hub to another? Well, the localized hub sets up rules, such as if I'm going to talk with another hub, I need to make sure that the data completeness, or the completeness of records is at a certain level, maybe let's just for an example, say 90%. So if you want to share your records with my hub, you need to make sure your records are 90% complete. And if they're not, the whole, the hub orchestrator is responsible for saying, I'll give you tools to elevate that level of completeness, and whether that's plugging in enrichment services, whether that's, for example, if we're missing addresses, we might plug in something like the Google Places API, if we're missing Company data, we might plug in Dun and Bradstreet or open corporates or you know, name the local business registries that exists in a majority of the countries. But I'm going to give you that tooling so that you can enter. And so that type of pattern actually was a huge inspiration and reference for an architecture that worked in I guess I can't use the word nature but worked is already working in another part of the world now whether you'd like to think it works or not that that's completely up to you, I'm sure many people will complain about some travel into into certain countries and how hard it is and how often they're first. And I'm not speaking from experience and but essentially the concept. It works. And the great thing is, is often when you bring in concepts from the real world, and then you say, Okay, well let's put into a machine to handle this. A lot of the issues that you find with, for example, scaling humans to solve a problem, a lot of the time, we can actually remove those disadvantages when we move it into a much more technical product technical architecture. So there's some of the patterns that we drew upon for to develop this approach. But I mean, let's be honest, I've already mentioned two examples where orchestration is common, and that pretty much most enterprises are using and that's Kubernetes to orchestrate deployment of containers, and scalability and health checks and liveness checks. And then you've got tools like zookeeper that have been around for years and years and years to orchestrate and you know, sinking of environments, sinking of dictionaries and configuration, so it's not a fast stretch to actually see how this pattern really came together