Meine Anwendung automatisiert einige Aktionen auf einem externen System im Auftrag des Benutzers. Nennen wir diesen Kontext meiner Anwendung Inventar BC.DDD - Anmeldeinformationen für externe Kontexte
Da dies eines der Hauptmerkmale meiner Anwendung ist, wird es als Domain-Service modelliert und mit einer Anti-Korruptionsschicht implementiert. Alles soweit großartig.
Auch der Benutzer möglicherweise ein paar verschiedene Konten auf diesem externen System, das meine Anwendung für sie behandelt. Also habe ich einen separaten beschränkten Kontext, in dem ich die Benutzerdetails und ihre Konto-IDs vom externen System behalte. Sagen wir Identität BC.
Jetzt muss die Antikorruptionsebene von Inventory BC die Konto-ID und die Anmeldeinformationen des externen Systems verwenden. Die Konto-ID ist Teil von Inventar-BC, um die externen Konten und Vorgänge zu trennen, die für diese externen Konten nicht möglich sind. Aber ich bin mir nicht sicher, wo ich die Anmeldeinformationen speichern und sie aus der Inventar-ACL abrufen soll.
Sollte ich die Credentials entlang ihrer Konto-IDs in der Identity BC behalten? Dann könnte ich einen Anwendungsdienst erstellen, um die Anmeldeinformationen für eine bestimmte Konto-ID zurückzugeben und sie aus der Inventar-ACL aufzurufen.
Oder gibt es eine bessere Praxis?
Edit1: Auch, wenn ich alle meine Kontexte in einen zusammenfalten sollte, was wäre angemessen?
Edit2: Auf meinem Domain-Service für das externe System sollten Anmeldeinformationen Teil der Methode params sein? Oder sollte ich mit einer Lösung fortfahren, die die Anmeldeinformationen auf der ACL-Ebene enthält?
Nun, wenn ein Benutzer bei meiner Anwendung registriert sie auch die Konten, die sie auf dem externen System, IDs und Anmeldeinformationen haben. Daher behandelte ich die externen IDs als Teil meiner Domain, da sie auch dazu dient, Vorgänge zu validieren, die mit ihren externen Accounts nicht durchgeführt werden können. – jam01
Ich bin mir nicht sicher, warum dafür externe IDs benötigt werden. Aber vielleicht liegt es auch daran, dass ich deinen letzten Satz nicht wirklich bekomme :) – guillaume31
Schätze deine Hilfe, war es schon lange nicht mehr. Was ich meine ist, dass der Benutzer Account A und B im externen System hat. Sie können Dinge in A oder B bewegen, aber nicht von einem zum anderen. Also muss ich sie unterscheiden. – jam01