Replication in the Middle
From ViaNovaArchitecturaWiki
- This pattern has been originally described in the article “Architecture Patterns for Enterprise-wide SOA” [Cace, 2008][1]
{Needs editing. Here: picture which shows an archetypal example}
Contents |
Context
… e-business and e-government require 24/7 availability. How can we ensure that Enterprise Data Retrieval Services needed in Multi-channel bridging also match that requirement? This pattern answers that question, and provides a low cost option in constructing part of the inner layout of Multi-channel bridging.
Problem, Forces and Tensions
Some data that needs to be accessed from the Internet or a partner channel resides in non-24/7 systems. It is costly to improve the availability and the performance of those systems.
The availability and the performance of services exposed to channel applications directly impact those applications. Some services are scalable and can provide high-availability and high-performance as required by service-consuming applications. However, practice often shows that this does not apply to data retrieval services exposed by enterprise systems. Typically, those systems are built only to be used internally and cannot be easily adapted. Even modern systems, custom built on Java or .NET technology, or implemented in CRM packages may be hard to scale appropriately. The load generated by self-service portal users is hard to predict and may come in heavy bursts. Therefore, major upgrades may be required to keep system response times at a satisfactory level. 24/7 availability is also hard to ensure, especially when the systems were not initially designed to provide it.
This problem can be solved by replicating data in a separate data-store component and make that replicated data (technically an Operational Data Store, ODS) available to channel applications. This replication may integrate data from multiple sources. The updates are never performed directly on the replica but on the original data sources. The updates can then be propagated to the replica in real-time or near-real-time by using some common ODS techniques.
The viability and the costs of this solution depend on the update frequency - too many updates can cause problems for ODS solutions. Practice shows that the administrative, information-intensive organizations deal with large volumes of relatively stable data. In addition, the nature of the data is such that often updates are not time-critical in OLTP terms. For example, an address change is a real-life event and a sub-second capture of that event in a database is pointless. Additionally, administrative data often changes periodically, and those changes take place in processes that are batched by nature (for example, payment of social benefits is a monthly process). It is even the case that some data is so stable that regular bulk loads (for example, nightly) suffice as the update mechanism.
Such ODS-based applications are very simple to develop and maintain. Performance and 24/7 availability are easy to achieve due to the inherent functional simplicity.
Therefore:
Solution
Replicate a sel(ected) set of data from multiple sources in the middle of the organization, in between the channel applications and the corporate databases.

Figure 2 Example ODS solution
Resulting Context and Consequences
{needs editing}
This pattern can be used instead of Composite Retrieval Services. Alternatively, these two patterns may be combined in one solution.
Examples
{Example(s) of applying the pattern.}
ODS, GUO (Dutch Social Security Agency for the agriculture sector employees)
Application exposes personal records of the insured persons via a Web Service. In production for 6 years (2002-2007), not in use any more because of a merger (the agency GUO does not exist any more). Platform: AS400, AIX, DB2. ODS updates in batch with different frequencies for different parts of the personal record.
Example {company name or another reference}
References
{References to sources used in this article.}
- [Alexander, 1977] C. Alexander et al, “A Pattern Language”, Oxford University Press, 1977
- [Cace, 2008] B. Cace, “Architecture Patterns for Enterprise-wide SOA”, Via Nova Architectura, 2008 [2]
