The Line That Never Widened - Cover

The Line That Never Widened

Copyright© 2026 by Alexander Winston

Chapter 13: The Message That Kept Its Address

July 1998 through May 1999

Sarah walked into the GroupWise lab expecting an architecture presentation and found the system already moving mail.

Two test accounts sat in the same domain. One post office was still served by NetWare. The other was running under UnixWare, on a machine she recognized from a hallway conversation months earlier that she’d assumed was still theoretical. A message crossed from one post office to the other and appeared in the recipient’s ordinary desktop client — same address, same login, same folder it would have landed in either way. The routing log recorded both operating systems involved in the delivery. The message itself carried no sign that it had crossed anything at all.

Half the whiteboard behind the test machines was still covered in failure cases nobody had crossed off yet, and the UnixWare agent was running against a copied test store rather than anything a customer would be allowed near. A hand-lettered legend in the corner sorted the remaining cases into three columns — reproduced, suspected, closed — and the closed column was the shortest of the three by a wide margin. This wasn’t a launch. It was a long way past a kickoff, too — the GroupWise team had clearly been working this for months, on its own time and its own budget, while print services and whatever else was moving through Provo that year had proceeded without needing to wait for any of it.

Sarah understood, standing in front of the whiteboard, exactly what kind of meeting she’d actually walked into.


Diane Osei, GroupWise’s engineering director, ran through what her team had already done before Sarah had finished taking her coat off: a full inventory of every NetWare-specific assumption buried in the server agents; early UnixWare builds of the core processes; a test domain already exchanging real message traffic with a NetWare domain; storage and locking experiments run against both NSS and a native UnixWare filesystem; a client-compatibility matrix covering every supported desktop-client version still in use; and preliminary estimates from the Internet gateway team and half a dozen smaller component owners who reported to Diane rather than to anyone in Sarah’s group.

She delivered the inventory the way Sarah had seen other engineering directors deliver a defense — fast, unembellished, daring anyone to interrupt with a question the list hadn’t already answered. Nobody did.

“None of this came out of your budget,” Diane said, not quite a question. “It came out of mine. Sarah and Eric gave us interfaces to build against and a certification bar to clear. They didn’t run this project, and I’d like the room to remember that when we get to the part where I need something from them.”

Sarah didn’t argue with it, because it was true, and because arguing would have undercut the exact point Diane was making. Clustering and the management-console group were doing the same thing on their own dependency lines, reading the same evolving standards, answerable to their own leadership. None of it had waited for GroupWise, and GroupWise clearly hadn’t waited for any of it either.

What had actually risen past Diane’s own authority to settle were three questions, and she named all three before anyone could soften them: whether the first certified UnixWare release would require the licensed Novell Services foundation and NSS underneath it; how long Novell intended to support customers running NetWare and UnixWare GroupWise systems side by side; and whether GroupWise’s own release schedule should bend to answer Microsoft’s sales pitch on Windows NT Server bundled with Exchange, which was getting louder in exactly the accounts Novell most needed to keep.

Gordon, sitting near the back of the room with the same patience he brought to every meeting he hadn’t called himself, made the boundary explicit before Sarah had to. “This team owns its product and its budget,” he said. “It always has. What it doesn’t own by itself is a commitment we make to every customer at once, or a support duration, or a claim that goes out under the company’s name instead of this department’s. That’s the room I’m here for.”


The architecture review that followed spent most of its time taking apart a phrase everyone in the building had started using too loosely: the common database. It had meant something specific and hard-won when it described eDirectory. Left unexamined, it was exactly the kind of idea that would happily expand to swallow GroupWise too, and Eric wasn’t going to let that happen in a room he was sitting in.

The diagram Diane’s team put up separated GroupWise into the pieces a customer experienced as a single seamless product without ever thinking about the seams: domains and their routing and configuration; post offices and the mailbox data inside them; the Message Transfer Agent moving traffic between domains; the Post Office Agent serving users directly and doing the actual work of a post office; gateways reaching the Internet and other outside systems; and the desktop clients themselves, with whatever local settings a given user had accumulated over years of using the thing.

eDirectory’s role stayed exactly where Sarah had already spent months of meetings, going back to the directory work itself, defending it: it identified the user, and it stored the administrative relationship between that person and a GroupWise account. It did not store a single message, a calendar entry, an attachment, or a delivery transaction, and nobody in the room proposed that it should. The common database engine from the directory work remained precisely what it had always been — one engine, across supported platforms, for directory data. GroupWise kept its own application databases and its own recovery rules, because they’d never been the same kind of thing to begin with.

Someone near the back — one of Diane’s junior engineers, new enough to still ask the question everyone senior had stopped asking out loud — wanted to know why GroupWise couldn’t simply store its messages inside the common database engine too, now that one already existed and ran everywhere the directory did. Eric didn’t treat it as a foolish question. “Because a directory answers ‘who is this and what do they own,’ and a mail system has to answer ‘deliver this reliably, in the order that matters, without ever applying the same thing twice’ — and those aren’t the same consistency rules,” he said. “We can’t promise a message gets delivered exactly once no matter what fails along the way. Nobody can, honestly. What we can promise is that every transaction carries an identity durable enough to survive a retry, that the receiving side always knows whether it’s already seen that identity, and that a repeat never gets applied a second time. That’s reliable delivery. It isn’t the same claim as guaranteed, unconditional, exactly-once — and we shouldn’t tell customers it is. Building one engine that’s honest about both jobs at once is a harder project than porting GroupWise ever was. Maybe somebody builds it someday. Not with what we’ve got in front of us right now.”

The actual porting work was a long list of unglamorous assumptions the NetWare agents had quietly accumulated over years and never had reason to question: NetWare’s own process and module behavior; its particular file locking and sharing rules; path and filename conventions that made perfect sense on one platform and nowhere else; timing and service-startup assumptions; who owned a piece of memory and when it got cleaned up; console operations built around a NetWare administrator’s expectations; and error reporting that assumed a NetWare log file was the only place anyone would ever look. None of it touched what a user actually saw. The client protocol stayed stable, the data model stayed stable, and nobody was going to be handed a new address, a new account, a blank calendar, or an unscheduled desktop-client upgrade because a server agent had changed which operating system it ran on.

“Application data stays GroupWise’s responsibility,” Eric said, closing the review. “eDirectory can name who owns it. NSS can store the files it lives in. Neither one gets to decide what it means.”


The storage question turned out to be less complicated than the politics around it, mostly because Diane’s team had already tested both real options before anyone senior had to weigh in.

NSS became the certified storage target for the first migrated domains and post offices, and the reasons were practical rather than ideological: it was already part of the Novell Services foundation running on UnixWare, it behaved the way GroupWise’s own storage assumptions already expected a Novell volume to behave, and it came with large-volume support, trustee integration, and a migration path from NetWare that nobody had to invent from scratch. That produced a commercial stack precise enough that Denise insisted on stating it out loud before the meeting moved on: the public UnixWare foundation at the bottom, the licensed Novell Services package — eDirectory and NSS included — above it, and GroupWise itself, separately licensed, sitting on top of both. NSS wasn’t becoming part of the GroupWise license, and nobody was to describe it that way in a customer conversation; a site needed the applicable Novell Services rights and its own GroupWise license, not one purchase standing in for both. A later certification against a native UnixWare filesystem could stay on Diane’s own roadmap without holding up anything already working.

The NSS team demonstrated a clean volume backup and restore, and Diane’s engineers let it run exactly once before explaining, patiently, why it proved less than it looked like it proved. A GroupWise agent could have transactions open mid-flight when a backup started. Database pages and their indexes could sit at different commit points from one file to the next. A queued message transfer might already be accepted by one agent without being fully recorded by another. Copying every file successfully, byte for byte, didn’t mean the resulting collection represented one coherent, recoverable moment in the application’s own life.

What GroupWise owned, as a result, was its own backup or quiesce procedure — a defined moment where the agents flushed their transactions, recorded exactly where their queues stood, and declared a consistency boundary before NSS, or any backup product built on top of it, was allowed to start copying anything. NSS protected the files and the volume underneath them. GroupWise declared when its own state was actually safe to copy. Neither team reached for the other’s job, and nobody in the room wanted them to.

The NSS engineer who’d run the demonstration took the correction better than Sarah expected — better, in fact, than she’d taken a similar correction herself two products earlier. “So we’re the loading dock,” he said, “and you’re the one who says the truck’s actually finished being packed.” Diane allowed that this was close enough to the truth that she’d steal the phrase for the next customer briefing, and the room moved on without anyone’s pride costing the schedule a day.


The product team rejected a single dramatic cutover almost before anyone proposed one seriously. GroupWise already had its own natural administrative seams — domains, post offices, individual agents — and those seams could move one at a time as long as routing between them stayed compatible the whole way through.

The coexistence design that came out of that decision let a NetWare domain keep exchanging traffic with a UnixWare domain for the full length of Novell’s published coexistence period, with a customer free to set its own pace within that window, let NetWare and UnixWare post offices sit inside the same logical GroupWise system without either one pretending the other didn’t exist, and let a Message Transfer Agent on one platform route cleanly to a Post Office Agent on the other. Existing clients reached their existing post offices without a single new identity or address anywhere in the process. Gateways could stay right where they already ran, on whatever platform currently supported them, without being forced into the same release as the core system just because the core system was moving.

The first production release covered exactly the core: domains, post offices, the MTA, and the POA, all supported on UnixWare. The Internet gateway and the other specialized connectors would ship on their own schedules, interoperating with the new core in the meantime rather than being declared finished before they actually were. Diane put it to the room more bluntly than the slide did: a customer who needed the gateway certified on UnixWare on day one should keep running it on NetWare a while longer, and nobody should tell them otherwise just to make the announcement sound more complete than it was.

 
There is more of this chapter...
The source of this story is StoryRoom

To read the complete story you need to be logged in:
Log In or
Register for a Free account (Why register?)

Get No-Registration Temporary Access*

* Allows you 3 stories to read in 24 hours.