Isaac Hagoel has dealt with his share of problems in commercial apps, many of which don’t show up until the web app starts to gain traction.

“A pattern I noticed in dev teams that start working on a new product is to ignore these problems completely, even if the team is aware of them,” he wrote. “The reasoning is usually along the lines of ‘We’ll deal with it when we start actually having these problems.’”

Ignoring the problems, though, makes them difficult to fix later on, he continued.

“The team would then go on to pick some well-established frameworks (pick your favorite), thinking these tools surely offer solutions to any common problem that may arise,” Hagoel wrote. “Months later, when the app hits ten thousand active users, reality sinks in: The team has to introduce partial, patchy solutions that add complexity and make the system even more sluggish and buggy, or rewrite core parts (which no one ever does right after launch). Ouch.”

Sync engines might be the key to heading off these performance problems, Hagoel wrote.

He’s not the only one who thinks so. Increasingly, The New Stack sees sync engines mentioned as a tool for modern web development.

Sync Engines: Old Tech With New Application

Sync engines are not new. On the contrary, a sync engine is an old solution, according to Aaron Boodman, a software engineer who helped build Google Chrome. He has worked on sync engines his whole career.

A sync engine is software that’s designed to synchronize data between multiple devices or services, he explained. Hagoel called it a “persistent buffer between the frontend and backend.” Sync engines can be and are written in any language, according to Boodman.

“I usually use Microsoft Outlook as an example of something that was written with sync, which is who knows how old, as old as dirt, but actually it even predates that,” he said. “One of the most famous GUI programs in computing history, Lotus Notes, was a sync-based product.”

Boodman is now the CEO, founder and partner at Rocicorp, a small partnership building high-quality developer tools — including Replicache and Zero, both open source sync engines.

More recently, sync engines have been used by LinearFigma and Trello, according to Hagoel.

UI developers have tinkered with sync engines for years, Boodman said.

“The reason why people keep coming back to it is because it makes really, really high-quality user interfaces,” he said. “When you look at who’s interested in sync right now, from a technology side, it’s all UI people. And the reason is because UI developers are motivated by making things really fast.”

UX Improvements Enabled by Sync

Among the UX improvements that sync enables:

  1. It allows reads to happen instantly when the user taps on something in the UI. When a user triggers something in the UI, the sync engines moves the data onto the client so the client can display the data right away;
  2. It allows writes to be instant because the data that you’re changing is local;
  3. It means no progress bars because the sync is constantly happening in the background.

“Sync engines are really promising, and they have been promising for a long time because, at the core, what they enable is interactions to be instant,” he said.

There’s a lot of machinery that goes away for UI developers using sync engines because sync engines abstract it away. It makes UI development more fun and gratifying, he added, which is why developers frequently come back to sync engines.

Sync for Web Apps: Why Now

Boodman identified several reasons why sync engines are becoming a popular option for speeding up the frontend, starting with the fact that the majority of software is now web-based. For a long time, the web did not have good storage primitives, so there was not a way to store very much data locally in the web client — something that’s needed in order to sync, he added.

“Actually […] that started to change more than 10 years ago, but the primitives that were available were so bad that it took a long time for developers to figure out how to use them and iterate on them,” he said.

The other factor is there are a number of really high profile apps that are well-respected by developers for their high quality, and these are enabled by sync engines, he said.

“Other developers want to get that same quality of UI, and they know that it’s enabled by sync engines, and so they’re looking for some way to get these benefits themselves,” he said.

Finally, there’s a new generation of sync engines being built now, Boodman said. His company is working on a new sync engine called Zero, but there are other new entries, including Power SyncElectric SQLConvex and Jazz Tools.

Source Info: https://thenewstack.io/the-vintage-technology-that-speeds-up-modern-web-apps/

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.