Replies: 3 comments 3 replies
-
@jimmarino |
Beta Was this translation helpful? Give feedback.
-
That would be one way of providing access to the audit state. However, the state still needs to be serialized, and this gets tricky with extensible type systems, specifically the one in the EDC. To take a concrete example, TransferProcess and its contained types are serializable so that they can be persisted. This is required for auditing (however that is achieved) and reliability. Contained within TransferProcess are extensible subtypes, e.g. those of ProvisionedResource. Those subtypes need to be serialized as part of the TransferProcess, so we used Jackson's polymorphic serialization capabilities to achieve this (TypeManager handles this). If we don't have that mechanism, there is no way to persist TransferProcess unless each extension handles specific subtypes, which will become too complex. Similarly, mapping to a distinct representation will run into issues when encountering extensible types such as ProvisionedResource. An example of this would be, "determine which infrastructure and geography data were stored in, e.g. S3 region." If there were two distinct domain models, each extension would be required to implement a mapping between its ProvisionedResource type and another type used for auditing (in this case, the S3 data). These same issues will need to be solved for the contract negotiation subsystem to achieve reliability and auditing. Does that make sense or confuse the issue? |
Beta Was this translation helpful? Give feedback.
-
Let us describe (and document) that as a pattern: Where do we expect Jackson annotations and for which reasons? Also the consideration/pros&cons of binding domain objects to a technical library. And some consequences to be taken into account ("no secret must get serialized"). |
Beta Was this translation helpful? Give feedback.
-
@denisneuling @DominikPinsel I think we will need to make ContractOffer and its contained types, e.g. OfferedAsset, Policy, Asset, etc. serializable to JSON so they can be persisted for reliability and auditing. What do you guys think?
Beta Was this translation helpful? Give feedback.
All reactions