Thoughts on the confusion around models

This is me looking at: Lonestar ElixirConf 2017- KEYNOTE: Phoenix 1.3 by Chris McCord

Much of the accumulated knowledge from the DDD world is now, finally, embraced by Phoenix. Even though Chris uses a bit different words, separating Blog and Sales is basically creating aggregates. They have roots (outside their directory) and the example even emphasis the transactional nature using Ecto.multi.

Using the word Bounded Context is a bit unfortunate though. It’s originally used (by Fowler and Evans) to separate complex domains, not to group small parts inside one domain. A bounded context in DDD is used to bound the semantics of the language used for different terms in the domain language. What @chrismccord describes is normally called aggregates. I feel like this will cause some confusion with people coming from a DDD background. If anything I would view separate Umbrellas as Bounded Contexts.

BUT, Ecto 2 and Phoenix 1.3 is definitely going in the right direction fast. I’m so happy about this!

Edit: Looking at this: Lonestar ElixirConf 2017 - KEYNOTE: Phoenix 1.3 by Chris McCord - #4 by chrismccord

I feel that Chris is actually using Bounded Context in the original sense. Perhaps I just missunderstood the talk.

2 Likes