View Source

.
.

h1. Enterprise Domain Repository - handle multi-source DomainObjects

{section}
{column}




{excerpt}Enterprise Domain Repository (EDR) is a _pattern_ for ensuring you are in control when handling Domain Objects containing data from multiple back-ends.

Most enterprises have several systems which own parts of a domain object.The data from these systems might be disjoint, as well as overlapping. The data quality and SLA requirements for each system are often of diversified quality. We need a standardized way to handle multi-source domain objects, and to extend the Domain repository to handle the real-world CRUD of today's enterprises.{excerpt}

The work on this pattern summarize experiences gained in real-life projects on both [.Net|.Net Implementation] and [Java|Java Implementation].

{column}
{column}

!OW-Enterprise-Domain-Repository-5-basic-1.jpg|thumbnail!

{column}
{section}


-----

h3. EDR Technology section

* [EDR - The details]
* [EDR - Pattern diagram]

{section}
{column}
h4. The Java implementation(s).

* [[Java Implementation Details|Java Implementation]]

h5. EDR on dev.java.net
* [EDR|https://edr.dev.java.net]
* [Join|https://edr.dev.java.net/servlets/ProjectMemberList]
* [Browse SVN|https://edr.dev.java.net/source/browse/edr/ ]

h5. EDR implemented as a Composite Object Programming multi backend EntityStore
* [Qi4j EDR implementation]


{column}
{column}

h4. The .net/C# implementation.

* [.Net (C#)|.Net Implementation]


h5. The .Net examples will be made publicly available later.


{column}
{section}

-----

h3. Presentations
* [JavaZone 2007|http://www4.java.no/presentations/javazone/2007/slides/5344.pdf]
* [Community Corner at JavaOne 2008|Enterprise Domain Repository - Home^EDR-JavaOne-08.pdf]
* [EDR as Integration Strategy at Communities in Action 2010 (Norwegian)| Enterprise Domain Repository - Home^EDR_as_Integration_Strategy_at_CiA2010.pdf]

-----



h3. Data Master Strategy

One of the advantages using EDR is the possibility of discovering, and automatically resolve, data inconsistency between different back-end systems.

One example is that the same customer has different street address in your billing and CMS applications.

This strategy is further examined in [*EDR-MDS*|http://wiki.community.objectware.no/display/EDRMDS/EDR-MDS+a+SOA+Master+Data+Management+Service].


h3. EDR data inconsistency between different back-end systems.

One example is that the same customer has different street address in your billing and CMS applications.

h3. Extensions / Advanced Scenarios

The [Recording Command Pattern] may be used to extend the Providers used by the Enterprise Domain Respository. A Recording Gateway will keep track of all executed commands and record all responses to these requests. This enables the gateway to go into offline mode and do playback of the traffic should the provided system be unavailable.

[Merge Strategy Pattern]
[Merge Timing Pattern]
[Open-ended Integration Merge Pattern]
[Data Mapping in EDR]
[EDR and very complex domain objects] How to handle domain objects that might span multiple Bounded Contexts

h3. Reference Implementation
[EDR Reference Implementation]
[Moderator Discussion | EDR - Moderator]