Skip to content

Instantly share code, notes, and snippets.

@bond15
Last active March 2, 2021 20:47
Show Gist options
  • Select an option

  • Save bond15/49e27c3fda84d3b3ecf8aecc4cc4a0dc to your computer and use it in GitHub Desktop.

Select an option

Save bond15/49e27c3fda84d3b3ecf8aecc4cc4a0dc to your computer and use it in GitHub Desktop.
A half baked thought on domain driven design
So I'm doing the Lightbend Reactive Arch cert and I'm on module 2 (domain driven design).
The way they talk about 'ubiquitous language' and modeling a domain is very akin to existing work
in Ontology or knowledge representation ( (subject, verb, object) tuple vs (subject, predicate, object) tuple).
(RDF and OWL are not akin to UML)
There are well known tools for managing Ontologies like RDF graphs or the OWL spec language (see Apache Jena).
In fact, I found a paper paper that highlights this similarity
("An Ontology-based Approach for Domain-driven Design of Microservice Architectures"
https://dl.gi.de/bitstream/handle/20.500.12116/3944/B24-1.pdf?sequence=1)
I'd be curious to see if anyone actually implements their 'ubiquitous language' using RDF/OWL tools.
RDF/OWL tools also have reasoning engines where you can run logical queries against your model.
It's also interesting to think about this from a system spec level formal verification problem.
You have a domain model, you could have an implementation model,
then you could ask what domain properties are transported along a "functor" mapping the domain model
to the implementation model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment