Separation4

Flexibility – too much of a good thing?

Flexibility - too much of a good thing?

Posted on: June 21, 2021


I occasionally hear the suggestion that LIXI1 is a more powerful standard because you can represent virtually ANY set of relationships between any number of people and organisations. This suggestion is completely misguided - LIXI1 is so flexible you can incorporate almost any data you can dream up and still appear 'valid'. And someone else can represent exactly the same data in a completely different 'valid' LIXI1 manner. If two representations of the same data can be completely different, is the data even standardised?

Rather than being a strength, the flexibility afforded by the unconstrained nature of LIXI1 its single biggest weaknesses. It can't effectively enforce consistency between implementations - the entire purpose of a standard. LIXI2 is much more constrained with thousands of hours of effort taken to explicitly limit the scope to only the items needed to represent the data unambiguously.

You can dream up almost any scenario that describes people and related organisations, and there is probably a way in LIXI1 can represent that data. To illustrate, consider the game 'Six Degrees of Kevin Bacon' as an example. The LIXI1 message at the end of this post (it's not for the faint of heart) is a completely valid representation of the data describing the degrees of separation between Kevin Bacon and John Malkovich.

If you are not using the LIXI2 data standards you are missing out on a whole new world of modern integration dev/ops practices, tools and frameworks!

It is clearly non-sensical to expect LIXI2 to accommodate this requirement. And since you can't sensibly use a LIXI1 schema to programmatically prevent this type of data representation, implementers usually resort to describing the rules of a valid message in a manually maintained 'guidebook', which usually runs to hundreds of pages. It is full of tables of rules that BAs and developers use to ensure that the incoming data makes business sense! It is simply not possible to automate the development or testing of the implementation to any reasonable extent based on the information in this guidebook.

LIXI2 is far more mature than LIXI1. LIXI1 was built to be flexible and easily added to, with no controls around how it was done. LIXI2 eliminates this ambiguity by standardising the way anything required is described, including the manner in which items are explicitly cross-referenced (you can read more here). This is absolutely the whole point of a standard!

If you're thinking of building an API for data integration, then the controlled manner of development of LIXI2, and the structural integrity that it provides, offers you the perfect foundations on which to build your software.

So why was LIXI1 built this way

Many of the key decisions regarding the LIXI1 data standards were made around 20 years ago, making LIXI1 a contemporary of the Nokia 8310.

At that time, the full value of data standards in providing a basis for the development of powerful tools and frameworks was not understood. Flexibility was thought to be beneficial as developers could quickly squeeze something into their implementation, not fully realising the incredible level of technical debt that would quickly accrue.

In the 20 years since then, the LIXI community has learnt a tremendous amount about collaboratively developing data standards and building and maintaining software based on those standards. The LIXI2 suite of standards and the supporting LIXI2 tools is the culmination of those 20 years of collaboration.

The Nokia 8310 was better than the phones that came before it. LIXI1 was better than the paper-based mortgages and fax machines that facilitated mortgage origination 20 years ago. Although I loved my Nokia 8310, I'm glad I moved on from it.

LIXI1 Message Representation of Six Degrees of Kevin Bacon

<?xml version="1.0" encoding="UTF-8"?>
<ApplicationBatch xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Identifier UniqueID=""/>
	<RevisionNumber LIXIVersion="" LenderVersion=""/>
	<Submission><Date>1980-09-13</Date></Submission>
	<BusinessChannel><Identifier UniqueID=""/></BusinessChannel>
	<SalesChannel><Identifier UniqueID=""/></SalesChannel>
	<Application>
		<Identifier UniqueID=""/>
		<RevisionNumber LIXIVersion="" LenderVersion=""/>
		<Submission><Date>1980-09-13</Date></Submission>
		<SalesChannel><Identifier UniqueID=""/></SalesChannel>
		<PartySegment>
			<Party>
				<Identifier UniqueID="six-degrees-of"/>
				<Person>
					<PersonName>
						<FirstName>Kevin</FirstName>
						<Surname>Bacon</Surname>
					</PersonName>
					<DateOfBirth>
						<Date>1958-07-08</Date>
					</DateOfBirth>
					<ContactDetails/>
				</Person>
			</Party>
		</PartySegment>
		<RelatedPartySegment>
			<RelatedParty RelPartyDescription="Actor">
				<Identifier UniqueID="kevin-bacon"/>
				<PersonName>
					<FirstName>Kevin</FirstName>
					<Surname>Bacon</Surname>
				</PersonName>
				<RelatedEntityRef RelatedID="sleepers"/>
			</RelatedParty>
			<RelatedParty RelPartyDescription="Actor">
				<Identifier UniqueID="dustin-hoffman"/>
				<PersonName>
					<FirstName>Dustin</FirstName>
					<Surname>Hoffman</Surname>
				</PersonName>
				<RelatedEntityRef RelatedID="sleepers"/>
				<RelatedEntityRef RelatedID="death-of-a-salesman"/>
			</RelatedParty>
			<RelatedParty RelPartyDescription="Actor">
				<Identifier UniqueID="john-malkovich"/>
				<PersonName>
					<FirstName>John</FirstName>
					<Surname>Malkovich</Surname>
				</PersonName>
				<RelatedEntityRef RelatedID="death-of-a-salesman"/>
			</RelatedParty>
			<RelatedParty RelPartyDescription="Movie">
				<Identifier UniqueID="sleepers"/>
				<CompanyName BusinessName="Sleepers"/>
			</RelatedParty>
			<RelatedParty RelPartyDescription="Movie">
				<Identifier UniqueID="death-of-a-salesman"/>
				<CompanyName BusinessName="Death of a Salesman"/>
			</RelatedParty>
		</RelatedPartySegment>
	</Application>
</ApplicationBatch>


Related Blogs


Written by:
Shane Rigby, LIXI Limited CEO
First Published: June 21, 2021