39 comments

[ 2.0 ms ] story [ 138 ms ] thread
This is full of opaque phrases that I guess make sense to the author.

I highly doubt theres a solution to anything in there.

Weirdly it’s basically one long ad for an implementation.

But I agree with you.

Many years ago I worked with an ex-IBM “strategist” who wrote and talked in this way. Supposedly something of a visionary; hired as an evangelist. Everyone was very impressed by him in meetings and customer consultancy.

But I am not sure if he ever said a single thing of substance.

I...

I am dumbfounded.

With the current state of the market why in the name of all that is holy would you depend on one vendor to get to another?

I dont need to be at the whim of one vendor to get to the next one. What happens when the vendor in-between goes out of business or wants to present their own service or...

I have no words for how bad this idea is.

It's the, "Intuitively, there’s no reason you shouldn’t be able to" that kills me.
Fret not, Charles, you are not alone.

I too am upset that Big EDIC has been thwarting this intuition for the better part of fifty years.

You're thinking like an engineer. Engineers are poor at estimations, poor communicators and can't give me a damn budget. I'll never understand why engineers don't see that abstraction, even through corporations is bad in one area, but good in others (libraries, dependencies).

Zapier? Tines? Workato? That's $10B in marketshare that disagrees with this, without even considering the order of magnitude of revenue present in companies like IBM, Oracle, Salesforce, SAP, etc.

And with these tools I know how long it'll take because it's 90% already built. The SLA's and BCP they provide allow me to delegate risk "enough" - the insurance company agrees - just the same as I delegate risk for my authZ/authN to Okta and Auth0, and my infrastructure and pretty much the entirety of my business to one-or-many cloud providers.

Do I wholly agree with the above? No. I'd sooner we all moved to paper-based databases, and basic HTML forms linked up to printers. But I have to be realistic.

The abstraction is visible. It's also important to remember vendor lock-in, and how they can raise rates and start squeezing out all of your profit margin.
The Zapiers of this world do not disagree.. they've built the hub and all the apps are spokes on their wheel. Engineers know that abstractions only help to create good architectures and high-level understanding, but they don't actually make the magic happen on the ground.
The SSO example is really different from the other ones. We've got a few standards implemented there and the authN/Z interaction is well defined.

For other systems we don't have that. It's a customer in one system, page viewer in another and a spreadsheet row in the billing service. Even with some common format, there's just too many specialisations you need to rely on custom fields.

There's a good reason zapier has an option for "just give us the code to run".

> You're thinking like an engineer. Engineers are poor at estimations, poor communicators and can't give me a damn budget.

And yet it is engineers who will be building this magical platform that you think is 'neat', that you think engineers generally somehow can't understand.

How is that going to work out?

Engineers are always greener on the other side of the fence.

Zapier, Tines, Workato (and doubtless some other gibberish names I haven't heard of) don't intend for a system like this to work, either. They won't bend over backwards.

Seriously, integrating with a single vendor is often nightmarish. And this guy is proposing some unholy vendor centipede? Harrrrrrd pass.
Author has discovered (f ∘ g)(x) and wants to tell the world about it
It's a clickbait ad for something called "Nerve".

The original idea for "electronic data interchange"[1] was to have a standard format for inter-company invoices, purchase orders, bills of lading, customs clearance, etc. So you only need N implementations, not N^2. This got going in the 1970s. So the formats are ancient. This is a flight ticket availability request in the international EDIFACT format.

    UNA:+.? '
    UNB+IATB:1+6XPPC:ZZ+LHPPC:ZZ+940101:0950+1'
    UNH+1+PAORES:93:1:IA'
    MSG+1:45'
    IFT+3+XYZCOMPANY AVAILABILITY'
    ERC+A7V:1:AMD'
    IFT+3+NO MORE FLIGHTS'
    ODI'
    TVL+240493:1000::1220+FRA+JFK+DL+400+C'
    PDI++C:3+Y::3+F::1'
    APD+74C:0:::6++++++6X'
    TVL+240493:1740::2030+JFK+MIA+DL+081+C'
    PDI++C:4'
    APD+EM2:0:1630::6+++++++DA'
    UNT+13+1'
    UNZ+1+1'
This dates from when data communications were really expensive per byte. It's also from when people were thinking in terms of forms expressed in machine-readable data, not an API which actually did something. There are about five different standards bodies for this sort of thing. There's a mini-industry which converts this sort of thing to and from other formats.

Anyone involved in modern systems for this sort of thing?

[1] https://en.wikipedia.org/wiki/Electronic_data_interchange

I'm involved in "modern" systems for Purchase Order and Invoice transmission between companies - using a standard called "cXML". I say "modern" - it dates back to 1999 when we were shouting "XML all the things!". 25 years later companies are just discovering how to use it to stop manual data entry.
Yeah I worked for a health car software (EHR) company a while back and they use similar data interchange formats for messaging across different healthcare systems.

Its terribly ugly to read and not easy to work woth, BUT it is dead simple, nothing complicated just a lot of terse data.

(comment deleted)
Having Salesforce, Zendesk, Hubspot and Pipedrive that share the same data in one company I would immediately start cutting costs instead of thinking about integration. Even if I had to think about it, the only correct approach for data propagation is directly from source of truth (or in "colonial" terms - master system) to dependent systems, and the only middleware in between them being data delivery (simple queue or ESB, workflow automation platform like Camunda or Zapier etc).
Not really, usually you have some translation to ensure data from different systems is aligned/translated into a unified format. It’s expensive and cumbersome to do this in every dependent downstream system over and over again. Especially if upstream systems change, you want to implement that change in one central place instead of all downstream systems.

I think there’s a lot of value in the snowflake approach: put all your enterprise data in a single logical data layer, where you can easily share that data with different tenants. Transformation and unification can be handled by the data layer.

Systems get customized a lot: sap installations have a lot of company specific fields and objects, same for most other enterprise systems. Having all those customizations effect a network of connected systems is hard to manage. Better to dump all data into an enterprise wide data layer, and then let every tenant take whatever it needs. Also will provide for more flexible access to the data (sorting, pagination, filtering) and better performance.

I fully agree with you and what you said is basically the same as my comment. You probably misunderstood it. What I meant is that logical data layer (I call it data delivery, which of course includes translation) should not serve any other function, i.e. be some system with business logic other than translation.
This works great until marketing builds their own system because they can't get data access fast enough and then grows it into a competing CRM and you have multiple systems of truth...
This is the reason why MarTech must be number one priority for a CTO of the company where execs are talking more about the funnel and CACs than about UX or security. Two CRMs is one of the biggest technical debts that you can imagine, the one that may require buy-in from the half of the company.
Hey Matt, it's a really neat product idea. I'd really recommend taking a niche and building it for that first. Selling a new Enterprise-wide integration tool is hard. Selling a new data orchestration concept will be harder. I recently moved out of that area, but I worked in this space for about a decade.

I can already see the rejections:

Debugging and Support: Rather than a centralised support system with levels, to support this you'd need a technical user familiar with the integration, or have the field mappings so well-documented and available a level 2 support rep could figure it out. The latter will never happen.

Brittle: This introduces a lot of risk to the organisation, as understanding conditions of failure and what the repercussions are in the event one of those services stops working becomes.. Complicated. There's a reason authN/authZ providers have opted for hub & spoke model, and that's because you need a highly specialised, often under-resourced team to look after it. Sound familiar? If you've worked in integration, it will.

Development and Resourcing: Like any proprietary product, this is another thing to hire for, and support. The uplift required for someone to understand this concept, and run with it for the use-case you've offered which is adopting it across the entire organisation requires.. Executive-level buy-in. To put it plainly, adopting this would introduce too much risk to the business in its current form.

I'd recommend taking a smaller bite with your approach. You're one person. Take a niche, and build something people want for that - people don't want technology for the sake of technology anymore. That money's dried up, and if you're trying to form a business off this concept - you'll need deep pockets to develop it.

Here's one that could be relatively successful: Take SIEM tooling, for example. For small and medium-sized businesses, operating a SIEM can be a massive undertaking. Usually the first thing an organisation wants to understand when they look to do this is: what audit logs do we have, and how can we look at audit logs for a user or employee across a range of services. Every company operating in a regulated environment, or company wanting to ensure they understand what an employee did during their last 2 weeks of offboarding would be interested in this.

If you built a product and demo purely to extract user/employee audit logs from services and expose them in this interface - I'd be lining up to try it.

> it's a really neat product idea.

The one thing this idea is not is neat, though. It's the opposite of it. It entrenches the opposite of neat.

At the end of the day it's SQL on top of my integration layer. I love that. I don't know how it'd work in practice, or if it's any better than adopting a data warehouse - but even for understanding state management or offering a tool to create a view of a "customer" data definition is valuable.

There's value to be had, I don't love the concept the author is proposing but the overall thing they're building, provided it "just works", certainly has some legs.

hey, thanks for your feedback! If you're up to discussing further, would be interested to hear more about what you like/dislike about the idea and what potential you see, if any (you can just email me at mprast@get-nerve.com). Either way, thank you for reading!
This might be functional for a startup with an exit horizon of 2 years and nobody needs to inherit/own the mistakes of green biz-ops people who don't know what they're doing.

I've had to integrate new functionality with disasters like this and it is always a huge pain to support. Especially when the one guy maintaining the zendesk application leaves the company and we're like, "what is the purpose of this zendesk app in the django monolith doing?" and six months after we update it to support the new thing we added, we find out that django app's functionality was superceeded by xyz a year ago.

If I found out the mission critical biz ops side of the company was run like this I would not accept the offer.

This is a neat idea, but the unfortunate reality is that every link in an "integration chain" is almost guaranteed to be lossy. The author notes an obvious version of this (what if one node doesn't support a field that the other nodes do) but there are countless other types of loss in each link - structure (i.e. document data types), precision, limits (max field size, max number), other "exotic" datatypes (geography, binary blobs). Even mutability can cause lossiness - some of the fields in these systems are write-once, and even if creates and updates can be propagated, delete propagation is a Wild West in SaaS applications.

If you're old enough to remember what happens when you make a repeated analog copy of something (fax machines, copy machines, VHS cassettes, etc) you know what happens with this kind of data flow topology. We advise our customers to do the /exact/ opposite of this - follow as few links as possible for any piece of data and move towards hub-and-spoke, ideally with the hub as a highly configurable, low loss node - in my world, this is a data warehouse or data lake, but it might also mean an iPaaS or similar.

Also integrations have semantics and support specific use cases. They're not just boxes and lines on an arch diagram!
It may not be immediately obvious, but this is basically another cri de coeur to the effect of "Why can't we make the Semantic Web work?"

That's a good question. But you need to start from the fact that people have actually tried really, really hard, rather than nobody having tried at all, and it in fact hasn't worked despite rather substantial investment. When you start from there, you may obtain some useful understanding. Perhaps even useful understanding that will lead to solving some of the problem. I've got no problem with people jousting with windmills, I just think that anyone who wants to take such a task on really ought to research previous jousting attempts first if they want to succeed (as opposed to just doing it for fun).

But if you start from the blatently false presumption that you're the first person to ever dream of data that can just flow between systems, well, yeah looking out into the world you're going to be confused at what you see.

We have in fact tried the "correct" way, and it turned out not to be correct. Whereas what we're doing now, however annoying it definitely is, does in fact at least partially work.

The semantic web did work. Google was able to enrich their own searches and bought a large semantic web called Freebase and incrementally enriched their web searches . When they can’t show you a relative ad they want to capture your search regardless and show you relevant info so you don’t switch providers.
If the "semantic web" worked, they wouldn't have had to buy a startup. You don't need a startup to read kindly-provided, accurate, well-categorized RDF tuples out of a web page.

One of my favorite ironies of the "semantic web" is almost every story cited as a success story by its advocates is in fact a failure story, in that it involves somebody having to do something that wouldn't have been necessary if the semantic web actually existed.

By the way, LLMs completely finish killing off the semantic web. The semantic web will never take the form of the entire world providing nice public RDF snippets. You "just" feed the real-world goo into an LLM (or its sequels) and extract what you need. It turns out that it was literally easier to solve the language comprehension problem than to implement the semantic web. (Even if you don't consider the language comprehension problem solved yet, we are well on track to having it solved before the semantic web is implemented.)

Not claiming they even invested in RDF tuples it clearly was that the ability to understand the internet meaning of sites and so forth required freebase and enriching their web results . It took a large engineering force to actually make it work.
Hey, thanks for your feedback. You're right; this is basically what the Semantic Web was trying to do. In earlier attempts to explain the idea I had mentioned Web 3.0 (that is to say, the 'original' Web 3.0), but wasn't sure enough people remembered it to be pertinent (I could certainly be wrong on this point).

I think the Semantic Web had a lot of promise, but it simply got too academic, with layers and layers of committees dedicated to ontologizing the entire world in a way that became progressively more detached from the needs of users and developers. As far as I could tell from my research, this was a stark reversal of the earliest ideas behind Web 3.0, which were more about establishing the 'meaning' of a piece of data in a decentralized way. Had the Semantic Web stayed the course on decentralization I think we may have seen a dramatically different outcome.

If you feel that this post didn't pay enough homage to the work that came before, that's a fair critique and I apologize. The concept of a Schema Network is definitely inspired by a lot of ideas that were in vogue in the Web 3.0 days.

I am always put off by articles titled "we've been doing X wrong for Y years" ("and #3 will shock you!" :)).

I have the feeling that this is the article of someone who has a vision under the shower and shares it with the wrong-doers to bring them wisdom.

Now, I have not read this specific article so it may be revolutionary for once.

We tried this when we were building DAM integrations. It doesn't work. Lossy integrations. You convert a datetime from Zendesk to your format via Hubspot and it goes from 1943-01-01T14:00:00Z to 0 because HubSpot stores that field as a unix timestamp and is very lax around bounds. You pull a decimal and you loose precision. Floats become ints, lists become dicts, strings become xml, binary blobs become urls, etc.
I agree that moving data between arbitrary systems is an admirable goal, but this whole article doesn't make any sense nor solves anything.

Data migration is more than just "a function" that we can "just apply". Maybe this would work if all integrations were written in compatible languages with some sort of common SDK/API.

There is a reason open standards exist, to achieve interoperability. They have drawbacks like slower innovation cycles due to being standardized and now hard to change - hence all our $bigcorp don't give a flying fart and instead keep building up their walls which often don't even provide the ability to implement point to point integrations

An academic architecture almost always has the following basic characteristics:

1) It offers both superior control and convenience.

2) It is simple to comprehend and cheaper to operate.

3) Systems are connected to each other with drawn lines.

4) The architecture "Decouples" systems to make them simpler, not more complex.

5) Data structures map cleanly to each other, with no loss.

6) Data structures are 1-dimensional collections of "fields".

7) The architecture is not used in production. No organizations depend on it economically.

.

On the other hand, a practical architecture can be distinguished by the following characteristics:

1) It is used in production. People rely on it daily.

2) It is expensive, and needs constant human attention to balance control and convenience.

3) It has no optimal state - only varying states of failure.

4) Its systems have myriad ways to connect. Some are incompatible with others.

5) Data structures are messy and arbitrary. Some are provably incorrect.

6) Unicode in particular is a problem.

7) It is not comprehensible by any single person.

.

With apologies to Admiral Rickover :)

The software integration wrong is wrong BEFORE the web, the idea of an OS like a container ship and applications as container on the ship, able to "interact each others only with cut&paste, DnD humanly, or programmatically with some "desktop bus" is a commercial move that fail the entire subsequent IT development.

The original model was an OS-framework where an application was just a bit of code added to the common live codebase.

The web 2.0 try to reimplement such model without admitting the commercial horror we are in. Hence it can only fails despite all the progresses. Web n.x can't solve the underlying issue. The solution we have is simply accept that software as a product and as a service can't exists in a proper IT sound world. Data can be sold, iron can be sold, not more.

Data can be XML, EDI, json, yaml, ... as long as we have the base we can have easy enough integration because agreeing with a real world standard is not something doable up front while having the flexible base, the ease user-level/high-level development of classic systems do solve much integration issue. Try Emacs and you'll understand.