Domain-driven design (DDD) is a way of building software where you let the business problem shape the code, instead of letting frameworks or databases dictate the design. ## Core idea DDD focuses on the *domain*—the real-world problem space like trading, lending, logistics, or healthcare—and tries to mirror that in the software model. Developers work closely with domain experts so the concepts, terms, and rules used in conversation match what appears in the code. ## Key concepts - Domain: The problem area your software addresses, with its entities, rules, and workflows. - Core domain: The most important, differentiating part of the business where correctness and clarity matter most. - Ubiquitous language: A shared, precise vocabulary used in both conversations and code; class and method names use the same terms the business uses. - Domain model: The conceptual and code representation of the domain, capturing entities, value objects, rules, and invariants. ## Building blocks in code - Entities: Objects identified by a stable identity over time (e.g., Customer, Account, Order), whose state can change while they remain the same “thing.” - Value objects: Immutable objects defined only by their values (e.g., Money, Address, DateRange), easy to replace with another instance that has the same data. - Aggregates: Groups of entities and value objects treated as a consistency boundary, with a single root entity that enforces business rules. - Domain services: Operations that belong to the domain but don’t sit naturally on a single entity or value object. - Repositories: Abstractions for loading and saving aggregates, so domain logic doesn’t depend on database details. ## Strategic structure - Bounded contexts: Clear boundaries inside a large system where a specific model and language apply; the same term can mean different things in different contexts. - Context mapping: Describing how bounded contexts relate and communicate, and where you translate between different models. ## When DDD is useful DDD is most valuable when the domain is complex and evolving, misalignment between business and code is expensive, and the system will live for years. For a simple CRUD admin tool, it’s usually overkill; for something like a trading or risk engine, contract lifecycle platform, or loan origination system, it can pay off heavily. Citations: [1] Domain-Driven Design (DDD) [2] Domain-Driven Design (DDD) [3] Domain-driven design - Wikipedia [4] What is Domain-Driven Design? Benefits, Challenges & ... [5] Domain-Driven Design (DDD): A Summary [6] An Introduction to Domain-Driven Design (DDD) https://khalilstemmler.com/articles/domain-driven-design-intro/ [7] Domain Driven Design in 10 minutes - part one [8] Domain Driven Design - Martin Fowler [9] Best Practice - An Introduction To Domain-Driven Design [10] Understanding Domain-Driven Design (Part 1) https://www.reddit.com/r/programming/comments/196jwlb/understanding_domaindriven_design_part_1/ Perplexity H/t mleku
*Bitcoin and Nostr exist because exit works better than warnings* View quoted note →
Choose life! *it's really important to understand that the enemy, and all their idiot acolytes, don't understand that their direction is literally collective suicide.* View quoted note →
*The real #catastrophe comes from #incentives + #access + #silence* View quoted note →
*Debt/GDP is the fake, official narrative story (it is stock vs flow), whereas Debt/Liquidity is about timing and plumbing. Every financial crisis is basically a roll failure (not enough liquidity to roll the existing debt at tolerable prices).* View quoted note →
*By organizing sources, comparing options clearly, and focusing on the questions that mattered, I stopped confusing more research with better decisions.... When the information is structured and the priorities are clear, making a decision feels less exhausting.* NotebookLM helped me avoid decision fatigue — without juggling multiple tabs
*the quality of what you build is only as good as your understanding of the problem* I paired NotebookLM with Antigravity, and it feels like they’re meant to work together
*To explore whether AI has influenced human spoken communication, we transcribed and analyzed about 280,000 English-language videos of presentations, talks, and speeches from more than 20,000 YouTube channels of academic institutions. We find a significant shift in the trend of word usage specific to words distinctively associated with ChatGPT following its release. These findings provide the first empirical evidence that humans increasingly imitate LLMs in their spoken language. Our results raise societal and policy-relevant concerns about the potential of AI to unintentionally reduce linguistic diversity, or to be deliberately misused for mass manipulation. They also highlight the need for further investigation into the feedback loops between machine behavior and human culture.* https://share.google/tLthNAanXM63R8VPZ
*The crucial advantage of our approach to EBRMs is that energies can be evaluated on partial traces, not just final answers. That means the system can localize failure. It can predict what is broken and where: which constraint is being violated, which part of the plan is inconsistent, which step introduced the contradiction. This turns “it failed” into actionable guidance.*
*Outrunning real inflation is supposed to require speculation, timing and path risk. The system's design enforces it.* View quoted note →