Best of Domain-Driven Design2024

  1. 1
    Article
    Avatar of techworld-with-milanTech World With Milan·2y

    What is Clean Architecture?

    Clean Architecture promotes the idea of modular, testable, and maintainable code. It emphasizes separating concerns and defining clear boundaries between system components. Clean Architecture is suitable for complex or long-lived applications, projects with a central domain model, and teams that prioritize clean code practices.

  2. 2
    Article
    Avatar of theserverlessedgeThe Serverless Edge·2y

    Become an awesome Software Architect with these books

    List of recommended books to become an awesome software architect, covering topics such as continuous delivery, domain-driven design, Wardley mapping, and more.

  3. 3
    Article
    Avatar of ardalisArdalis·2y

    Clean Architecture Sucks

    Clean Architecture is not a silver bullet and its success depends on the technical expertise of the developers. Inexperienced teams may struggle with implementing the architecture correctly. It's important to understand different approaches to software architecture and seek guidance from experienced developers.

  4. 4
    Article
    Avatar of communityCommunity Picks·2y

    DDD or not DDD ?

    Domain Driven Design is a recommended approach for developing large systems with complex business logic. It focuses on defining boundaries and modeling the actual domain rather than relying solely on patterns. Transaction Script and Table Module are examples of domain logic patterns that can be used in smaller applications with less complexity.

  5. 5
    Article
    Avatar of medium_jsMedium·2y

    Practial Domain Driven Design

    Practical application of Domain Driven Design (DDD) requires hands-on experience to achieve a true understanding, beyond theoretical knowledge. The post discusses common challenges such as rigid rules that may complicate DDD implementation and emphasizes the importance of context in applying these rules. It introduces Business Oriented Architecture, which integrates Tactical DDD patterns with Resilient Messaging to simplify development by managing issues like resiliency, scalability, and configuration. This approach allows developers to focus more on business logic, enhancing efficiency and project outcomes.

  6. 6
    Article
    Avatar of hnHacker News·1y

    Thinking in Actors - Part 1

    This post explores the benefits of the Actor Model for managing state in software systems. It highlights the drawbacks of traditional approaches, such as anemic data models and misaligned business logic, and advocates for a richer domain-driven approach. Additionally, it discusses how virtual actors, as implemented in frameworks like Microsoft Orleans, can address challenges of concurrency, scalability, and fault tolerance in distributed systems.

  7. 7
    Article
    Avatar of bitBits and Pieces·2y

    10 Challenges In Implementing Microservices

    Implementing microservices can be challenging, but there are solutions to overcome the common challenges. Domain-Driven Design (DDD) and Event-Driven Architecture (EDA) can help manage complexity. Proper service discovery and communication mechanisms are important for large-scale applications. Data management and consistency can be addressed through strategies like CQRS and the Saga pattern. Deployment and DevOps automation can streamline the process. Monitoring and observability are essential for performance insights. Service resilience and fault tolerance can be achieved through circuit breakers and health checks. Security measures like authentication, secure communication, input validation, data encryption are crucial. Effective team organization and communication are necessary for collaboration. Versioning and compatibility can be managed using semantic versioning and API versioning. Scalability can be achieved through horizontal scaling and container orchestration.

  8. 8
    Article
    Avatar of devtoDEV·2y

    Digging Deep to Find the Right Balance Between DDD, Clean and Hexagonal Architectures

    Choosing the right architecture for software can be challenging. The author shares their journey and practical experiences in balancing Clean Architecture, Domain-Driven Design (DDD), and Hexagonal Architecture in their project, TimeMates. Key highlights include ensuring the separation of concerns, maintaining a consistent mental model, and reusing value objects effectively while avoiding unnecessary boilerplate. The post emphasizes the importance of practical implementation over theoretical adherence and encourages developers to use critical thinking tailored to their specific needs.

  9. 9
    Article
    Avatar of itnextITNEXT·2y

    Orchestration

    Orchestration in software architecture involves a coordinating layer that manages inter-service communication for system-wide use cases. While it enhances debug capabilities and error handling, it can introduce communication overhead and dependency complexities. The orchestrator acts as a facade or mediator, coordinating service interactions and ensuring system consistency. It can simplify the addition of new use cases but complicate service restructuring. Different approaches like SPI and Hierarchy can mitigate some of the challenges.

  10. 10
    Article
    Avatar of baeldungBaeldung·2y

    Vertical Slice Architecture

    Learn about Vertical Slice Architecture and how it addresses the limitations of Layered Architecture by organizing code by business capabilities. This approach improves code expressiveness, coupling, and cohesion, while providing flexibility for diverse design paradigms. Examples using Spring Boot demonstrate the application of this architecture.

  11. 11
    Article
    Avatar of baeldungBaeldung·2y

    DDD with jMolecules

    Learn how to leverage jMolecules to express Domain-Driven Design (DDD) concepts using annotations and type-based interfaces. The post covers key DDD elements such as Value Objects, Entities, Aggregate Roots, and Repositories, and demonstrates how to use jMolecules for building a domain model of a blogging application. It also explains how to integrate jMolecules with popular Java and Spring libraries and enforce DDD principles using ArchUnit.

  12. 12
    Video
    Avatar of dotnet.NET Blog·2y

    Clean Architecture with ASP.NET Core 9

    Steve Smith, also known as R Dallas, discusses the implementation of clean architecture in ASP.NET Core 9. Emphasizing practical demos, the presentation covers the benefits of clean architecture, its role in dependency management, and how it helps in organizing code effectively. A demo project, eShop on web, showcases the architecture in action, including the setup of core, infrastructure, and web projects to maintain separation of concerns and enable testability.

  13. 13
    Article
    Avatar of telerikTelerik·2y

    Getting Started with Domain-Driven Design in ASP.NET Core

    Domain-driven design (DDD) aligns code structure with business logic to address complex problems. This guide introduces the basics of DDD and steps for creating a microservice using ASP.NET Core, focusing on strategic and tactical design. It covers setting up various layers, including domain, infrastructure, and application, and provides a practical example of a commission processing module, complete with code snippets and explanations.