Sel-Sync™️

Sel-Sync (Selective Synchronization) is a technology that enhances real-time collaboration and resource versioning. Sel-Sync is based on the idea that users should be able to opt in and out of synchronizing various aspects of their workflow. When opting out, other peers should be made aware of the state. Each peer of a collaborative group should be able to manage multiple resource versions distributed between their peers.

For information on downloading the Sel-Sync SDK, click here.

The cornerstones of Sel-Sync are:

  • Sync Props
  • Indicators
  • Actions
  • Sync Groups

Sync Prop™️

A sync prop™️ defines a distinct property managed by the Sel-Sync system. Each sync prop is represented by metadata and provides a specification outlining its functionality. A sync prop may have multiple implementations and deployments.

The sync prop API is distrubted as part of the Sel-Sync SDK. For information on the Sel-Sync SDK, click here.

For example, the Webpage Areas Scroll Position sync prop will synchronize multiple browsers' scrollable areas with each other. This will insure every user will view the same content regardless of browser window dimension or font size. The Sel-Sync and sync prop mechanism also provides actions to allow users to join or detach from the group, manage version state, modify version mappings, and view indications.

Sync props are a means of establishing a standard for end-users and developers. Please contact us if you are a developer and would like to contribute any sync props targeted for your use-case to the Sel-Sync ecosystem.

Visit the Sync Prop Database to browse our database of published sync props.

Application Sync Props

  • Opened Tabs
  • Active Tab
  • Tab Order
  • Clipboard

Document Sync Props

  • Scroll Positions
  • User Pointers
  • User Clicks
  • User Selection
  • Document Selection

With Sel-Sync Native

Installing Sel-Sync on your host enables the synchronization of additional aspects.

  • Window visibility
  • Window size
  • Window position
  • Opened applications and documents

With Google Docs Addon

Google Docs already synchronizes document content, comments, and user selections. The Sel-Sync extension adds additional features, including:

  • Selected document
  • Scroll position
  • Edit mode
  • Comment visibility
  • Selected comment
  • and much more!

In addition to synchronizing each aspect, the sel-sync extension provides the ability to opt out of individual aspects, and displays indicators to monitor the sync state of peers.

Aspects

Aspects categorize the nature of sync props. For instance, if a document is being edited, the specific document is a Subject Aspect, the content of the document is a Content Aspect, the visibility of the window that displays the document is an Outlet Aspect, and the scroll position of the document is a View Aspect.

One of Sel-Sync's main objectives is to enable collaboration on aspects beyond the Content Aspect.

This is just a glimpse of aspects; There are many more aspects defined by Sel-Sync specification.

See Sel-Sync Aspects for more details.

Instances

A sync prop may be instantiated multiple times. These are called instances. Each instance is mapped to one or more versions of the property.

Sync Groups

A sync group is an abstract association of resources. A sync group is comprised of

  • Permissions (who is included in the sync group, along with their roles and permissions)
  • Sync Props (the sync props that are managed by the sync group)
  • Resources (entities added to the scope of the sync group)
  • Logistics (the context where the sync group is active, such as the websites, applications, location of the users, day, time, etc)

Sync groups can be entered and exited by users that have been granted permission.

Versions

Versions are a cornerstone of Sel-Sync. Each sync prop may have multiple versions. Each version represents an alternative state of the sync prop. Every instance of the sync prop can map to various versions. Sel-Sync manages the state of these versions, the mapped versions. and the effective version of each instance.

Indicators

Indicators are used to convey the state of of sync prop instances. This state includes:

  • If the instance version is using the primary or non-primary version
  • If the instance is in-sync with the primary version
  • If notify-on-change is enabled or active
  • Errors

Conventions

The following items are standard conventions used to indicate state.

Colors

Green: In-Sync Orange: In-Sync - Detached Red: Out-Of-Sync - Detached Grey: Disconnected

Icon

An icon is used to indicate the state of the current user.

Border

The border around the icon is used to indicate the state of other users. No border indicates that no other users are joined, detached.

Actions

Actions in Sel-Sync are responsible for working with the various versions of a sync prop. Some actions manipulate the states of these versions, while other actions manipulate how instances of the sync prop map versions.

Setting The Effective Version

effective version handle primary version some public version secondary version *some private version

Handling Out Of Sync

[coming soon]

Other Actions

[coming soon]

Advanced

[coming soon]

Modes

[coming soon]

Module

[coming soon]

Peer

[coming soon]

Sync

[coming soon]

Notify On Change

[coming soon]