Transaction set variants in the Amazon 850 Purchase OrderA colleague told me about transaction set variants and now I want to get some more experience with them myself. In a nutshell, the problem is that one transaction set can represent different kinds of documents. For example, he showed me an implementation guide that specified that the 204 Motor Carrier Load Tender could be used to create, cancel, modify, or confirm a load tender. That feels like four different documents to me, but they are all represented by the same transaction set. So, how do you deal with that in practice?
A colleague told me about transaction set variants and now I want to get some more experience with them myself. In a nutshell, the problem is that one transaction set can represent different kinds of documents. For example, he showed me an implementation guide that specified that the 204 Motor Carrier Load Tender could be used to create, cancel, modify, or confirm a load tender. That feels like four different documents to me, but they are all represented by the same transaction set. So, how do you deal with that in practice?

Getting started with the X12 file formatThis document is the tl;dr of EDI. It won’t contain everything. It may not answer all your questions. It will only apply to X12. But it will save you a ton of time if you’re trying to decipher your first EDI document.
This document is the tl;dr of EDI. It won’t contain everything. It may not answer all your questions. It will only apply to X12. But it will save you a ton of time if you’re trying to decipher your first EDI document.

Two messy kittens and a missing EDI 214I don’t blame EDI for failures in logistics any more than I blame kittens for messing up my floor. I only got Sam and Toby a day ago, but they’re the cutest balls of fuzz ever to grow legs and they jumped straight into my heart. Still, as I’m staring at the puddle on my floor, I’m convinced that there's a design flaw in their digestive system. I don’t remember their breakfast being this chunky, or this sticky. Sputter gunk kittens are a new experience for me, so I call a friend and she recommends a steam cleaner.
I don’t blame EDI for failures in logistics any more than I blame kittens for messing up my floor. I only got Sam and Toby a day ago, but they’re the cutest balls of fuzz ever to grow legs and they jumped straight into my heart. Still, as I’m staring at the puddle on my floor, I’m convinced that there's a design flaw in their digestive system. I don’t remember their breakfast being this chunky, or this sticky. Sputter gunk kittens are a new experience for me, so I call a friend and she recommends a steam cleaner.

Control numbers in X12 EDIThe concept behind control numbers is pretty straightforward, but to work with them in practice, there are a lot of details you need to understand. For example, an interchange control number is a unique identifier for an interchange and you can use it to acknowledge that you received an interchange. In practice, it’s only unique within a certain scope, trading partners may have their own expectations about them regardless of the standard, and it’s uncommon to use them in acknowledgments. And all of that is assuming that you know what an interchange is.
The concept behind control numbers is pretty straightforward, but to work with them in practice, there are a lot of details you need to understand. For example, an interchange control number is a unique identifier for an interchange and you can use it to acknowledge that you received an interchange. In practice, it’s only unique within a certain scope, trading partners may have their own expectations about them regardless of the standard, and it’s uncommon to use them in acknowledgments. And all of that is assuming that you know what an interchange is.

How to ensure cross-region data integrity with Amazon DynamoDB global tablesAt Stedi, we are fans of everything related to AWS and serverless. By standing on the shoulders of giants, the engineering teams can quickly iterate on their ideas by not having to reinvent the wheel. Serverless-first development allows product backends to scale elastically with low maintenance effort and costs.
At Stedi, we are fans of everything related to AWS and serverless. By standing on the shoulders of giants, the engineering teams can quickly iterate on their ideas by not having to reinvent the wheel. Serverless-first development allows product backends to scale elastically with low maintenance effort and costs.

Excerpts from the annual letterBelow is an edited version of our internal annual letter.
Our business is the business of business systems – specifically, we offer a catalog of tools that developers can use to build integration systems for themselves and their customers.
Below is an edited version of our internal annual letter.
Our business is the business of business systems – specifically, we offer a catalog of tools that developers can use to build integration systems for themselves and their customers.

Date and time in EDIThe trick to dealing with date and time in an X12 EDI document is to make things easy for yourself. EDI isn’t going to do that for you. EDI makes it possible to put a date on a business document in any way a human being has ever come up with and that flexibility comes at a cost: it’s downright confusing. You don’t have to deal with that confusion, though, because you don’t have to deal with that flexibility. It all starts with the implementation guide that you received from your trading partner.
The trick to dealing with date and time in an X12 EDI document is to make things easy for yourself. EDI isn’t going to do that for you. EDI makes it possible to put a date on a business document in any way a human being has ever come up with and that flexibility comes at a cost: it’s downright confusing. You don’t have to deal with that confusion, though, because you don’t have to deal with that flexibility. It all starts with the implementation guide that you received from your trading partner.

JSONata PlaygroundWhen a question about JSONata turns up on StackOverflow, we do our best to answer it. Not because it's part of our strategy, or because we are building our corporate image, but because we like to help out. And we like to impress a little bit, too.
When a question about JSONata turns up on StackOverflow, we do our best to answer it. Not because it's part of our strategy, or because we are building our corporate image, but because we like to help out. And we like to impress a little bit, too.

Parallel CDK stack deployments with GitHub ActionsOne deployment per hour is far too slow. Our initial deployment style starts with a paths filter to limit what stacks deploy, based on files and folders changed in a commit. We start our project this way thinking it will give us quick deploys for infrequently changed stacks. As our project grows, though, this is taking too long to deploy. Based on our analysis, our fastest recorded deployment time is 13.5 minutes, but our slowest deployments take up to 40 minutes. We are confident we can get our p99 down to 20 minutes or less.
One deployment per hour is far too slow. Our initial deployment style starts with a paths filter to limit what stacks deploy, based on files and folders changed in a commit. We start our project this way thinking it will give us quick deploys for infrequently changed stacks. As our project grows, though, this is taking too long to deploy. Based on our analysis, our fastest recorded deployment time is 13.5 minutes, but our slowest deployments take up to 40 minutes. We are confident we can get our p99 down to 20 minutes or less.

Introducing lookup tables in MappingsInstead of writing conditions inside of your mapping for simple data conversions, you can now create a lookup table to automatically replace a value that your system (or trading partner) does not recognize with one that they do.
Instead of writing conditions inside of your mapping for simple data conversions, you can now create a lookup table to automatically replace a value that your system (or trading partner) does not recognize with one that they do.

Converter: one step closer to any-to-any data integrationBusinesses of all sizes exchange commercial transactions like purchase orders, ship notices, healthcare claims, and invoices in a wide variety of file formats.
For developers who need to translate EDI, Stedi offers EDI Core – and for transforming JSON payloads, Stedi offers Mappings. Developers looking to build scalable B2B integrations also need to handle XML and CSV.
Businesses of all sizes exchange commercial transactions like purchase orders, ship notices, healthcare claims, and invoices in a wide variety of file formats.
For developers who need to translate EDI, Stedi offers EDI Core – and for transforming JSON payloads, Stedi offers Mappings. Developers looking to build scalable B2B integrations also need to handle XML and CSV.

EDI Core: the foundation of any reliable EDI systemDevelopers come to Stedi to build EDI systems of their own. And at the center of any EDI system is data translation: a way of turning EDI – an arcane file format – into a more approachable format, like JSON.
Developers come to Stedi to build EDI systems of their own. And at the center of any EDI system is data translation: a way of turning EDI – an arcane file format – into a more approachable format, like JSON.

Complex data transformations made simple with MappingsBusiness integrations are anything but straightforward – they are typically composed of many steps that need to be executed sequentially to process a single business transaction.
At a high level, each step can be divided into one of two categories: transporting data and transforming data. In order to enable developers to implement all manner of data transformations with ease, we've built Mappings.
Business integrations are anything but straightforward – they are typically composed of many steps that need to be executed sequentially to process a single business transaction.
At a high level, each step can be divided into one of two categories: transporting data and transforming data. In order to enable developers to implement all manner of data transformations with ease, we've built Mappings.

Announcing 85%+ price decreases and expanded free tiers for EDI Core, MappingsStedi has four pricing tenets:
- Developers should only pay for what they use – no setup fees, implementation fees, monthly minimums, commitments, or long-term contracts;
- Products should be priced such that developers think of ways to use more of the product, not less of the product;
- Prices should never go up – only down;
- Generous free tiers should allow for liberal experimentation.
Stedi has four pricing tenets:
- Developers should only pay for what they use – no setup fees, implementation fees, monthly minimums, commitments, or long-term contracts;
- Products should be priced such that developers think of ways to use more of the product, not less of the product;
- Prices should never go up – only down;
- Generous free tiers should allow for liberal experimentation.

EDI for developers: turn EDI into JSONSo, you’ve been tasked with “figuring out EDI.” Maybe you’re in the supply chain or logistics world, or maybe you’re building a product in the healthcare or insurance space – chances are that you’re reading this because one of your large customers, vendors, or partners said that if you want to move the relationship forward, you have to do something called EDI: Electronic Data Interchange.
So, you’ve been tasked with “figuring out EDI.” Maybe you’re in the supply chain or logistics world, or maybe you’re building a product in the healthcare or insurance space – chances are that you’re reading this because one of your large customers, vendors, or partners said that if you want to move the relationship forward, you have to do something called EDI: Electronic Data Interchange.

What makes EDI so hard?EDI – Electronic Data Interchange – is an umbrella term for many different “standardized” frameworks for exchanging business-to-business transactions. It dates back to the 1960s and remains a pain point in every commercial industry from supply chain and logistics to healthcare and finance. What makes it so hard? Why is it still an unsolved problem despite many decades of immense usage?
EDI – Electronic Data Interchange – is an umbrella term for many different “standardized” frameworks for exchanging business-to-business transactions. It dates back to the 1960s and remains a pain point in every commercial industry from supply chain and logistics to healthcare and finance. What makes it so hard? Why is it still an unsolved problem despite many decades of immense usage?
