HCL Domino · NSF · Replication · Migration

Domino Replication Without a Shared Replica ID

Classic Domino replication is highly reliable — as long as your databases are true replicas. But what happens during migrations, archiving or integration projects where databases are intentionally independent?

The real question is not simply: “How do I replicate this database?”

The real question is: “How do I synchronize selected Domino documents between independent NSF databases in a controlled, traceable, repeatable and highly efficient way?”

This is one of the scenarios the Domino API Engine was designed for: controlled bidirectional synchronization between independent Domino databases — even without a shared Replica ID. Creations, updates and deletions are controlled by the configured rights for each database.
Controlled Bidirectional Synchronization Between Independent NSF Databases Without a Shared Replica ID Domino DB 1 Replica ID: A1B2… independent structure selected documents Domino DB 2 Replica ID: C9D8… independent structure controlled documents API Engine formulas · rights · flags logging · result statistics optional link localization classic Domino replication requires true replicas creations · updates · deletions — controlled by rights per database read · create · update · delete permissions can be defined independently
The Practical Problem

Not Every Synchronization Scenario Is Classic Replication

Domino replication is built around the concept of databases being replicas of each other. That is exactly what makes it so powerful — but also what limits its use when databases are intentionally independent.

Typical examples are migration databases, archive databases, reporting databases, customer-specific target applications or newly designed Domino applications that still need to receive selected data from an older NSF.

  • different Replica IDs
  • different database designs
  • different field structures
  • different business purposes
  • selective transfer instead of complete database replication
  • repeatable synchronization instead of one-time copy operations
Typical Use Cases

Where Non-Replica-ID Synchronization Becomes Relevant

This type of controlled synchronization is especially useful when Domino databases need to exchange data, but are not intended to become classical replicas of each other.

Migration and modernization Move selected documents from an old NSF structure into a redesigned Domino application.
Archive and reporting databases Synchronize only relevant business documents into archive, analysis or reporting structures.
Master and satellite databases Distribute selected data between a central database and independent departmental or customer-specific databases.
Controlled bidirectional exchange Allow creations, updates or deletions in either direction depending on the configured rights per database.
SL Net-Solutions can support these scenarios both with the Domino API Engine itself and with project-specific consulting, migration scripts and custom replication logic.
Limits of Standard Approaches

Where Copy Agents and Export/Import Routines Become Difficult

Of course, there are other ways to move data: LotusScript agents, Java agents, export/import processes, copy routines or custom migration scripts. These approaches can work, but they often become difficult when the requirements go beyond a simple one-time copy.

Typical Challenges
  • selecting only specific documents based on business rules
  • synchronizing changes repeatedly, not just once
  • handling created, updated and deleted documents
  • preserving or transforming fields during transfer
  • handling document links, view links or database links
Operational Requirements
  • traceable result logs and error statistics
  • controlled processing rules per database direction
  • performance that remains practical for large data volumes
  • repeatable execution for migration or integration workflows
  • clear separation between product logic and project rules
At that point, a simple copy agent is often not enough, while standard Domino replication is not the right model either.
Engine Approach

Controlled Synchronization with the Domino API Engine

The Domino API Engine can synchronize documents between Domino databases even if the databases are not classical replicas of each other. The synchronization can be controlled by Notes-compatible selection formulas, rights and processing flags.

The goal is not to replace standard Domino replication where standard replication is the right tool. The goal is to handle the cases where Domino databases need to exchange data, but are not replicas — and where the process must remain selective, transparent and controllable.

  • migration from an old NSF structure to a new Domino application
  • selective synchronization into archive or reporting databases
  • transferring only certain forms, categories or business states
  • synchronizing Domino databases with different Replica IDs
  • controlled data distribution between related but independent applications
  • one master database and several independent satellite databases
  • traceability through result and error statistics
Simplified Engine-Script Example

Selective Synchronization Between Independent NSF Databases

The following simplified example illustrates the basic idea. The exact script depends on the database paths, selection logic, rights and required processing flags. Depending on the configured rights for each database, the synchronization can include creations, updates and deletions in either direction.

Engine-Script example @ReplicateWithFormula
SrcDBh := @OpenDB("apps\\source.nsf");
DstDBh := @OpenDB("apps\\target.nsf");

SelectionFormula := "Form = \"Customer\" & Status = \"Active\"";

/* Example: define replication rights */
Rights := @BitVektor(1:2:3:4):@BitVektor(1:2:3:4);

/* Selective synchronization between independent Domino databases */
Result := @ReplicateWithFormula(
    SrcDBh;
    DstDBh;
    SelectionFormula;
    Rights
);

@LogReport(Result);

SrcDBh := @CloseDB(SrcDBh);
DstDBh := @CloseDB(DstDBh);

This is not meant to be a replacement for a full project script. In real-world scenarios, the script would usually include logging, error handling, configuration documents, formulas per direction, result statistics and project-specific processing rules.

The principle is simple: select the documents, define the processing rules, synchronize the data, and keep the result traceable.
Beyond This Example

More Advanced Replication Scenarios

The example above shows a relatively simple synchronization scenario. In real-world Domino projects, replication requirements are often more complex.

Some databases need to synchronize documents while protecting selected fields from being overwritten. Other scenarios require formula-based selection combined with field protection, or controlled replacement logic for documents that must be pushed into another structure.

  • @ReplicateWithFieldProtection for synchronization where selected fields must remain local to one database
  • @ReplicateWithFormulaWithFieldProtection for formula-controlled synchronization with protected field sets
  • @PushAndReplace for controlled push-and-replace scenarios
  • project-specific replication logic implemented as a custom Engine task or custom @Function
The evaluation package includes a sample script for this scenario together with matching Domino test databases. This allows the synchronization behavior to be tested in a controlled non-production environment without having to build the complete setup from scratch.
The Engine Replicator is not limited to one fixed replication model. For advanced migration, archiving, synchronization or data distribution scenarios, the replication logic can be extended for customer-specific requirements.
Have a similar Domino migration or synchronization challenge? SL Net-Solutions can help analyze your scenario, design a controlled synchronization approach and evaluate whether the Domino API Engine is a suitable technical foundation.
Discuss Your Scenario Download Evaluation Function Documentation
Included Evaluation Example

Starting the Included Replication Example

The evaluation package includes a sample script and matching Domino test databases for this replication scenario. To run the example, download the evaluation package and install the Engine as described in the included README file.

  • Download and unpack the Domino API Engine evaluation package.
  • Install and configure the Engine as described in the README file.
  • Place the included sample databases in the TEST directory below the Domino server data root.
  • If the databases are stored in a different location, adjust the sample script accordingly.
  • Check and adjust the database ACLs if required.
  • Open the Engine Control database.
  • In the view 4. Scripts\by Category, select the event document for the script REPLICATE_WITH_FORMULA.
  • Click the action button Start again.
Starting the REPLICATE_WITH_FORMULA example script in the Engine Control database
Selecting the REPLICATE_WITH_FORMULA event document and starting the script with the “Start again” action.
This starts the sample replication script once. The example is intended for a controlled evaluation or test environment and should not be executed against productive databases.