Let's say we are in a company that sells coffe mugs, providing a Domain-Driven Design approach for their architecture needs.
According to common DDD practices (i.e. in literature by Vaughn Vernon and Eric Evans, nicely summarized in this Medium article), a good starting point is to identify Core Domains, Generic Domains, Supportive Domains and Bounded Contexts. Then, the domains can fit into the Bounded Contexts. One domain can appear in more than one context, with different meaning (because of different context).
From my understanding, Bounded Contexts can be mapped to key business areas (not necessarily matching real depts. in the organization, but that's a different topic)
So let's say we have identified these Business Areas
- Providers
- Shipping
- Payment
- Delivery
- Text Recognition
Let's focus on this last one. One of the key parts in the store is Text Recognition. The customer uploads a pic for it to be printed on the mug, and the backend performs Text recognition, to offer additional features based on the text it's found, like saving the design, tagging for sharing the designs in SNs with a hashtag, analytics... so on. Let's say that this Text Recognition is achieved through an external solution, like Google's Cloudvision.
The question I raised here is that, for me, Text Recognition is more a technical solution, than a Bounded Context itself. The other thinking stream we have, is that it should be reflected as a Bounded Context.
What do you think?
It's true that it's an "external" solution, so in a way it should be reflected in one of the usual DDD diagrams. But I think it fits better as a Generic Domain not a Bounded Context, and would be shown in the Contexts Mapping Diagram (which features domains).
Another topic that could help is Strategic vs Tactical DDD. I don't have a proper understanding of Tactical DDD yet. To me Providers, Shipping, Payment, Delivery contexts have sense in a Strategic DDD. But Text Recognition should not be mixed there, it has a more "Tactical" meaning to me.
EDIT: To clarify from the @Ewan 's question Does the business talk about Text Recognition as part of the business process? Not definitely. The business doesn't speak of "Text Recognition". It is not a software company. The term is only handled at the technical levels in it.
Could you add any other points I haven't thought of? Do you any other view on it?
I greatly appreciate.