Skip to main content

Core Domains in Strategic Domain-Driven Design

From Analysis to Leadership Action​

This framework drives three critical types of leadership decisions:

Team Structure: Core domains need dedicated, stable teams with your strongest engineers. Supporting domains can share resources or rotate developers for growth opportunities. Generic domains require minimal dedicated engineering focus.

Technology Strategy: Core domains might justify cutting-edge approaches and custom optimization. Supporting domains should use proven patterns and mainstream technologies. Generic domains should use the most standard, well-supported solutions available.

Investment Allocation: Most successful technology companies spend 60-80% of engineering effort on core domains, not spread evenly across all capabilities. Your budget allocation should reflect the strategic importance of each domain.

Core Domains helps you and your organization gain clarity on where product-engineering efforts are going so you can better understand what situation you are in, as well as what strategic games you need to be playing. It is also beneficial for competitor analysis.

Interactive Tool

Use this interactive tool to map your business domains and visualize your current investment strategy. Click to add domains, drag to reposition them as you refine your thinking. Use the element listing under the table to delete or simply see all items at a glance. Your data from previous sessions can be saved and loaded via a special string you must copy and store somewhere safe.

The tool does not store or track your data.

CORESUPPORTINGGENERICBusiness DifferentiationModel ComplexityLowHighHighLowAllocation Distribution

Capabilities

NameDomainAction
Click on the map to add capabilities

Allocation Breakdown

DomainCountPercentage
Core
00%
Supporting
00%
Generic
00%

Understanding Core Domain Classification​

The chart above maps your business capabilities across two dimensions to help you make informed investment decisions.

Axis​

Business Differentiation (X-axis)
How much competitive advantage does this domain provide your organization?

Model Complexity (Y-axis)
How difficult is this domain to implement and maintain?

Both measures are for "today", not the historical moment when a business capability was developed. These two measures are relatively open to human intuition and understanding, however some good heuristics to hone that intuition are available in the DDD Crew's Core Domain Charts guide. You should triangulate the correct location by gathering input from multiple stakeholders.

Core Domain Regions​

Core Domain (High Differentiation, High Complexity)
This is the secret sauce that makes your business different and hard to copy.

Supporting Domain (Mid-High Differentiation, Low-Medium Complexity)
These domains are important to your business model but don't require sophisticated technical solutions. They might include custom workflow tools, specialized integrations, or business-specific processes that off-the-shelf solutions can't handle well.

Generic Domain (Low Differentiation, Any Complexity)
These are your standard business functions that everyone simply expects to exist. Typically they are things like an authentication system, email notifications, and other everyday features you could find in any business.

Strategic questions to ask when using this tool​

  • Where should we concentrate our senior engineering talent?
  • Which domains justify building custom solutions versus buying?
  • How should we structure teams around business capabilities?
  • What technology investments will create competitive advantage?
  • Which domains are becoming commoditized and need different approaches?
  • Are some of these domains no longer worth holding on to?
  • What domains should we try to introduce?
  • Are some domains no longer worth holding on to?
  • What domains should we try to introduce?
  • Which domains will probably not be a strong differentiator for long?

And more!

Common Strategic Errors​

Treating Everything as Core​

Believing every part of your system requires the same level of investment and attention. Most organizations have only a few true core domains. When everything is treated as core, you dilute focus and waste resources on capabilities that should be solved with standard approaches.

Under-investing in Actual Core Domains​

Organizations often spread engineering effort evenly across all domains, which means core domains don't get the focused attention they need to create real competitive advantage. Your core domains should receive disproportionate investment in architecture quality, technical talent, and evolution planning.

Ignoring the Changing Market Landscape​

The market nudges everything leftward quarter-over-quarter. Your formerly core domains may be something where your competitors are catching up to you. It takes a lot of long-term continuous investment to keep pushing your core domains to the right.

Over-engineering Generic Domains​

Generic domains should be solved with existing off-the-shelf solutions whenever possible, even if you can do something better it is often not worth it in this domain.

Confusing Technical Complexity with Business Value​

Just because something is technically difficult doesn't make it strategically important. Complex generic domains (like payment processing or identity management) can consume large amounts of engineering effort without providing any competitive differentiation. Similarly, not everything that uses complex technology under-the-hood is intrinsically complex, such as using third-party LLMs for prompting.

Common domain patterns​

Domains are not static. Over time they will shift leftwards due to market forces. You can attempt to push them to the right with innovation. They tend to move down as teams think about how to simplify the total cost of ownership of a system, and can move upwards accidentally or when added to without care for system design. Because of this, your team should regularly look at how your domains evolve. I found every 6-12 months is a good cadence, but this is not a universally good setting.

PatternCharacteristicsDescription
Decisive CoreVery-High Differentiation, Very-High ComplexityExtremely complex domains that offer the highest business differentiation. Organization with this are likely to become market leader with a strong technology moat. Often requires significant investment.
Short-term CoreHigh Differentiation, Low Complexity BECOMES Low DifferentiationHigh differentiation today, but the complexity to emulate/replicate the solution is so low that competition will catch up in a relatively short time frame. You should press the advantage with sales and marketing while you have it, but also understand the feature is about to become background noise in your unique selling position.
Hidden CoreLow Complexity, High Differentiation Potential SHOULD BE High ComplexityThis one is a bit tricky to notice as it could look be diagnosed as a short-term core. It typically represents an under-investment in technology to solve a problem, backed up by an extensive non-tech solution (often in the form of a large manual or outsourced process). It shows us that the technology should be higher in complexity but because all the complexity is hidden by humans doing the work, it looks simple.
Table Stakes Former CoreHigh Complexity, High Differentiation BECOMES Mid/Mid or Low/LowFormer innovations that have become standard expectations. No longer differentiating but necessary for business operations (often supporting), and there is a good reason to keep owning it in-house. This is the natural lifecycle of any innovation. It is possible for the complexity to remain high superficially due to software legacy.
Commoditised CoreVariable Complexity, Low Differentiation BECOMES Low or Mid DifferentiationLike the Table Stakes Former Core, this domain became less differentiating. However, it is a generic capability where any competitive advantage has been completely destroyed by market commoditization. Video calling is a good example of a commoditized core. It was previously deeply complex and differentiating for decades, and now you can quickly and easily run a peer-to-peer chat application stand-alone or embedded in your software with numerous open source tools to choose from.
Black Swan CoreVariable Complexity, Low Differentiation BECOMES High DifferentiationUnexpected transformation of apparent commodity into core domain. Completely unforeseen opportunities that nobody anticipated, including the organization itself. Note-taking was a generic commodity which Notion has made into a core domain. GitHub is another good example, as git repo hosting has always been a commodity level feature. A lot of this shift was due to improving solved problems, simplifying, network effects, collaboration, timing, and even product positioning.
Big Bet CoreUnknown Complexity, Unknown DifferentiationThe amount of business differentiation is unknown until market feedback is acquired, regardless of research. Research only informs a guess at where it might land. Big Bets may be deeply disruptive, but their locations cannot be known until proven by the market.
Suspect SupportingHigh Complexity, Low Differentiation SHOULD BE Low/Mid ComplexitySupporting domains with unexpectedly high complexity. Dangerous as it offers little business differentiation yet requires high investment. Often indicates high accidental complexity. Serious effort should be taken to bring down the complexity of this model in order to reduce the costs of this non-differentiating domain.

For more detail and great visuals, visit Nick Tune's Core Domain Patterns.