Conceitos Básicos
Um template é uma entidade de compartilhamento de dados que possui um modelo bem definido (schema). As especificações de templates são realizadas pelos sistemas. Cada registro de um template é identificado por meio de uma chave natural, composta por atributos do schema.
Sistemas podem se vincular a um template por meio de recursos (resources). Um resource é uma tradução do schema do template para o schema do sistema, ou seja, é uma entidade de dados do sistema final. Por exemplo, uma pessoa em um sistema de Saúde pode ser traduzida como um paciente, enquanto no sistema de Educação pode se traduzir em um aluno ou um professor.
Os sistemas são responsáveis por compartilhar atualizações internas que ocorrem sobre registros vinculados a templates através do envio de updates para o serviço. Um update consiste em um snapshot do estado completo do registro compartilhado. O envio de updates pode acontecer em background, sem interferir no processamento normal dos sistemas.
O serviço armazena o último update enviado por cada sistema para cada registro, representando o estado atual do registro naquele sistema. Sempre que um novo update é recebido, este é comparado com o anterior e o conjunto de diferenças (changeset) entre ambos é calculado. Essas diferenças representam as alterações (changes) em cada atributo do registro.
A sincronização dos registros entre os sistemas ocorre por meio do mecanismo de pendências cadastrais. Cada conjunto de alterações gera uma pendência cadastral para os sistemas que possuem vínculo com o registro. Os administradores (usuários finais) de um sistema podem configurar o aceite de atualizações realizadas em outros sistemas, a nível de campo, por meio do Gerenciador de Pendências Cadastrais. É possível aceitar sempre, nunca, ou gerar uma pendência para que um usuário avalie as alterações posteriormente. Por padrão, atualizações vindas de outros sistemas são sempre REJEITADAS.