1
0 Comments

Comprehensive ToDo App Codebase inspired in DDD & Hexagonal Architecture

We were really frustrated with how hard it is to build and manage large and complex software. Basically, everything ends up entangled, hard to understand and any new feature requires a lot of effort.

So, we went to the drawing board, did some really deep research into software architectures like Hexagonal Architecture (or Ports and adapters), design techniques like Domain Driven Design (DDD) and its tactical patterns, as well as Behaviour Driven Development (BDD).

After several months of learning, building and iterating, we created a very comprehensive ToDo app that uses many of these design patterns and principles.

This example clearly shows how the domain / business logic of an application should be designed and built, ensuring a clear separation of the business logic and the infrastructure code.

In fact, following the Hexagonal Architecture (or Ports & Adaptors), the whole idea is to create this separation through the use of ports (on the business logic side) and adaptors (on the infrastructure code side), so that your core application logic does not depend on any infrastructure or user interface.

We’ve actually created some plugins that will make it easy to follow this framework and build and application with the Nest.JS framework.

I know this is a bit technical, but I would love to get some feedback from the community.

https://github.com/bitloops/ddd-hexagonal-cqrs-es-eda

on April 5, 2023