Parallel product and implementation tracks #27
Replies: 1 comment
-
Probably not saying anything new, but just in case there's confusion in our communication (also alluding to @yordis mentioning of "not being in OOP" in reaction to my other discussion topic)...
When you do a Google or DDG search you are overwhelmed with Tactical Pattern results. The statement that "Concordance aggregates are not DDD aggregates" relates to a tactical pattern, namely that when using OOP the aggregate is an object that has encapsulated state, and in Concordance that isn't the case and OOP isn't used. The statement isn't relevant in a (DDD) strategic design perspective. In strategic design the Aggregate is simply a concept from the business domain. An interface to a particular bounded context (sub-domain) that forms a consistency boundary. The bounded context is always internally consistent. (The bounded context is an information model, but 'state' isn't really a concept. Text and diagrams describe behavior and business/domain logic).
When going into tactical patterns it is their implementation that give me as App Dev the experience where I don't have to worry about any infrastructure and plumbling concerns. I should be able to take the text and diagrams of the strategic design and almost literally transfer it into code. I code in the Domain Layer then, which by "inversion of control" has zero dependencies on other layers. So I should be able to both code and test (e.g. via Gherkin behavior tests) my bounded context / subdomain in complete isolation. This code should ideally even be 100% vendor-agnostic. Then when Concordance comes into play it takes care of all my infra concerns, distribution, NFR's etc. This is coming along fine. So in summary as App Dev I do 3 things to create a Solution:
And then to Maintain/Extend I keep doing these as part of / integrated with my solution dev process. |
Beta Was this translation helpful? Give feedback.
-
There are very interesting discussions taking place on Slack. Without implying anything about the approach taken (I truly have no opinion rn) I am seeing a lot of focus on technical implementation and wondering about the functionality that results for an App Dev. A tech-first exploration + elaboration and asking feedback on that may be best at this stage, idk.
Below I picked some nuggets of the conversation from Cosmonic (Kevin's) side that hint at product functionality to be delivered to the App Dev:
Also a remark about, umm.. let's say the Ubiquitous Language of Concordance 😜 :
In my discussion yesterday I hinted at this..
👉 Could we get to a situation where implementation vs. product development go more side-by-side? Know what's the desired functionality before it is being built, or in parallel to it being built? Explore the Concordance domain in a more non-technical fashion?
As an App Dev, before selecting wasmCloud/Concordance at a high level I'm facing this situation (I use terminology Creator/Clients):
This is the backdrop against which I have to make the decision to go with Concordance or not. Given the breadth and scope of Concordance it is an impactful decision, and since Concordance takes an opinionated approach I will have to adopt my development processes accordingly. The easier it is to envision the impact, the easier the decision will be.
Beta Was this translation helpful? Give feedback.
All reactions