- Saved searches
- Use saved searches to filter your results more quickly
- valignatev/ddd-dynamic
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- DDD in Python
- Implementing the Repository pattern using SqlAlchemy (part 2)
- Implementing the Repository pattern (part 1)
- Domain Entities in Python
- Implementing Value Objects in Python
- Where to place the business logic in DDD
- How to trace request logs using correlation id
- My first DDD project
- What’s wrong with [your_favourite_web_framework] tutorials?
- DDD.__init__()
- Recent Posts
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Domain Driven Design in Python, Ruby and other dynamic languages resources
valignatev/ddd-dynamic
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Added PyAssimilator library to the code section
Git stats
Files
Failed to load latest commit information.
README.md
Domain Driven Design in dynamic languages
This is an attempt to collect all info about Domain Driven Design the World knows in dynamic languages (Python, Ruby, PHP etc). Not only DDD but all worthy info about layered and clean architecture with separation of business logic from infrastructure and framework code.
Architecture Patterns with Python (aka «Cosmic Python») — Book by Harry Percival and Bob Gregory featuring DDD and strategic patterns (forthcoming on O’Reilly, also available in early release on safari
Clean Architectures in Python — Book by Leonardo Giordani based on his post
Domain-Driven Rails — a book by Robert Pankowecki & Arkency Team about DDD, CQRS, Event Sourcing related to Rails projects
Domain-Driven Design in PHP — Book by Carlos Buenosvinos, Christian Soronellas, and Keyvan Akbary about DDD and implement with PHP
Event Sourced Building Blocks for Domain Driven Design with Python — This small book contains a concise pattern language for event sourced DDD in Python. This book focuses on reliable «building blocks» for DDD. It avoids reprising the «strategic» patterns of DDD. It takes a practical «bottom up» approach to making reliable, scalable, maintainable applications and systems. The preface includes a rejuventated consideration of pattern language as description of events. This is a small book, and isn’t quite finished at this time.
Implementing the Clean Architecture — a book focusing on practical aspects of implementing the Clean Architecture. It is heavily illustrated by code snippets in Python. Apart from the Clean Architecture itself, it also introduces other software engineering patterns, like modularity, Dependency Injection. CQRS or Event Sourcing.
Retrieving aggregates from inside of other aggregates — StackOverflow question about aggregates in Python application
Slides found in slideshare or anywhere else
Clean Architecture Python (web) apps — Przemek Lewandowski about application of Uncle Bob’s Clean Architecture to Python web apps with code examples and type annotations
Domain Driven Design com Python — slides in Portuguese, but contains some useful code in Python
From Active Record to Events — Emanuele DelBono about using DDD/CQRS/ES in ruby on rails applications
Hexagonal design in Django — Python, Django, contains some code.
DDD for Rails developers — whole blog by Victor Savkin about DDD in Ruby on Rails
Domain-Driven Design and MVC Architectures — two articles from Federico Cargnelutti with PHP examples in second part
Value Objects in Java & Python — about Value Object , comparison of value objects in Java and Python
Domain Driven Design methodic Python — A little summary about DDD in Python
Exploring domains with python — A little article with example of Repository and Storage classes
Clean architectures in Python: a step-by-step example — Implementation of Uncle Bob’s Clean Architecture in Python. Contains step by step explanation and github repo with all code.
Large web apps in Python: A good architecture — Article with a point that MVC is not enough for large applications and you need separate layer for business logic.
DDD + Ruby subreddit — A subreddit for Ruby developers interested in Domain-Driven Design.
Arkency blog and newsletter — They write about DDD, Event Sourcing and testing in Ruby/Rails a lot. Not just plain text, but code and even webinars occasionally.
Hanami em Production – 2 anos depois: post in Portuguese describing the experience of Creditas at building and maintaining its core app (60k lines of code + 2m request/month) with DDD in Ruby using Hanami framework.
How to Improve on Naming Contexts in Domain-Driven Design — Describes technique of how to find a better name for your bounded contexts.
Implementing Domain-Driven Design in PHP — Introduce Domain Driven Design and how to Implementing in Laravel with PHP by Alireza Rahmani Khalili.
Event Sorcery — Detailed blog with lengthy articles about building event sourced domain driven applications with Python.
How to get started DDD & Onion-Architecture in Python web application — Quite self-explanatory title of the blog post by Takahiro Ikeuchi. Including github repo with the idea implementation.
Hands-on example of Hexagonal Architecture with Python usage (FastAPI example included) — Article about Hexagonal Architecture, explaining the basics and showing the code examples.
Domain-Driven Design with Python — Great talk about DDD and Python with explanations of many DDD topics and code examples by Robert Smallshire from Skills Matter
Domain-Driven Design Patterns in Python — Detailed talk about DDD patterns in Python by Robert Smallshire from EuroPython 2018
The Clean Architecture in Python — Awesome talk on PyOhio2014 from Brandon Rhodes
Hexagonal architecture in Django Talk in Russian by @proofit404, contains code examples and project layout
Domain Driven Design and Hexagonal Architecture with Rails — Ruby on Rails talk from RailsConf 2014 by Eric Roberts and Declan Whelan with code examples
Hexagonal Rails — Ruby on Rails, GoRuCo 2012 by Matt Wynne
Hexagonal Architecture in DDD — Golf with DDD in PHP by Gordon Skinner from PHP UK Conference
Boundaries Python — Talk about Boundaries by Gary Bernhardt from Pycon US 2013
Boundaries Ruby — Same talk by Gary Bernhardt but in Ruby from Ruby Conf 12. Contains QA section.
Hexagonal TDD — TDD implementation of hexagonal architecture of rails application. In 3 parts.
Jim Weirich on Decoupling from Rails — Showcase from Jim Weirich from October CincyRb.
From Active Record to Events — A talk by Emanuele DelBono from Wroclove.rb about DDD/CQRS/ES in Ruby and Ruby on Rails.
Built to last: A domain-driven approach to beautiful systems — RailsConf 2017 talk by Andrew Hao. Techniques for refactoring legacy codebase to DDD style, design overview and code examples.
Technically DDD — Fantastic talk by Pim Elshoff on getting started with DDD using Value Objects, Entities and Services in PHP
Clean Architecture — PyGotham 2018 talk by Sebastian Buczyński with code and slides. There is also a blog post in English
Domain Driven Design — CODEiD 2018 talk by Артём Антоненко @Antonyan. In Russian. There’s also a repo — PHP DDD Skeleton, and other DDD-related projects under his github account.
Eventsourcing 101 — the talk about event sourcing with live coding in Python by Bob Gregory. He codes an event sourced e-commerce basket from scratch.
Domain Driven Design For Python — Episode 219 — When your software projects start to scale it becomes a greater challenge to understand and maintain all of the pieces. In this episode Henry Percival shares his experiences working with domain driven design in large Python projects.
Как мы уменьшили сложность наших проектов — PyCon RU 2019 talk by Борис Цема (in Russian) about using DDD patterns to reduce Wargaming.net projects.
Clean Architectures in Python — PyLondinium19 talk by Leonardo Giordani
Event Sourcing in Python — Mature, stable, popular Python library for event sourcing and DDD.
PyAssimilator — A set of DDD patterns in Python with various external libraries support.
dry-python — A set of Python libraries for pluggable business logic components.
Ruby DDD Sample App — Port of DDD Sample Application written in Java in Ruby. Definitely worth reading.
DDD in Django — An attempt to implement DDD and hexagonal architecture in Django
DDD in Flask — A terse example of DDD-inspired architecture using Flask
DDD in Falcon — A simple implementation of DDD and hexagonal architecture in Falcon with a few batteries included.
Kanban in Python — Python implementation of simple kanban board with DDD approach.
Kanban in Python exercises — Same board devided on exercises for students of some workshop by Sixty-North.
Rewind — Rewind is a (CQRS) event store server written in Python. Not that it written with DDD approach but still related.
The Clean Architecture example application (python) — Repository with example modular application written in Python. The code is used in Implementing the Clean Architeure book.
The Clean Architecture with Python — Reddit discussion about the topic and this gist with proposed architecture and some comments on it.
abidria-api — Django application written with clean architecture. There also an article by Jordi Fierro which explains architecture components and how they interact with each other.
Hanami — A good option out of the Rails world, Hanami is an emerging framework that encourages and helps to design DDD applications in Ruby. The getting started guide references some DDD concepts and how they fit inside the framework.
Revents — A possibile implementation of a DDD/CQRS/ES in Ruby and Ruby on Rails
DDD Rails Sample — project meant to be used as a start point for those who want to build Domain Driven Design applications in Rails.
Domain Driven Design Classes and Interfaces — The project is a PHP sample collection of Domain Driven Design inspired Classes and Interfaces.
DDD CQRS ES Banking Application — Banking application following DDD rules, using Clean Architecture, Event Sourcing and CQRS.
The Hexagonal Architecture example application (python, with FastAPI) — example application written in Python on top of FastAPI web framework, using Hexagonal Architecture principles.
Paid training and workshops
DDD Patterns in Python — Sixty North offers two-day classroom training on implementing DDD in Python with relational or event-sourced persistence.
Rails + Domain Driven Design Workshop — workshops by Arkency. The page should have a schedule for future workshops and a summary of what to expect from them.
EventStorming Fundamentals Course (also in Spanish) — learn the EventStorming fundamentals to design software with a DDD mindset to later implement it with any dynamic programming language.
About
Domain Driven Design in Python, Ruby and other dynamic languages resources
DDD in Python
Implementing the Repository pattern using SqlAlchemy (part 2)
In the previous post, we implemented a really simple file-based repository that used the pickle module. As we didn’t use a database, we didn’t have
Implementing the Repository pattern (part 1)
Repository pattern – why do we need it? The main goal of the repository pattern is to abstract the logic used for retrieving (loading) and
Domain Entities in Python
In the previous post, we discussed the implementation of Value Objects. This time let’s focus on a different kind of Domain Objects – Entities. The
Implementing Value Objects in Python
A Value Object is one of the fundamental building blocks of Domain-Driven Design. It is a small object (in terms of memory), which consists of
Where to place the business logic in DDD
In Domain-Driven Design we have a clear separation between the Domain, Application, and Infrastructure. If we are talking about the business rules, then then the
How to trace request logs using correlation id
Some time ago I stumbled across an interesting problem. In a Python web app, I wanted to add a correlation_id to each log produced by
My first DDD project
Motivation When I decided I want to learn DDD, I needed a sample project to work on. I know that there are plenty of great
What’s wrong with [your_favourite_web_framework] tutorials?
This example is taken directly from Flask tutorial but you will likely find similar examples for other frameworks as well. What does it do? Well,
DDD.__init__()
As you may already know, Python is one of the world’s fastest-growing programming languages. It’s flexible, easy to use, fast to prototype and develop, and
My name is Przemysław (Premislav ) Górecki, and I run this blog to spread the concepts of Domain-Driven Design in the Python community.