ascetic-ddd¶
A framework, toolkit and seedwork for Python/Golang DDD projects. Provides building blocks for implementing Domain-Driven Design: aggregates, entities, value objects, repositories, specifications, sagas, outbox/inbox patterns, fakers and more.
Designed to be ascetic — minimal, explicit, and free of unnecessary abstractions.
Source Code:
Python version: ascetic-ddd-python;
Golang version: ascetic-ddd-go.
Warning
Both versions of the project are still under active development, not production-ready, and has not been debugged or optimized. The project structure is unstable and backward compatibility is not guaranteed until version 1.0.0.
Contents
- Getting Started
- Architecture
- Modules
- API Reference
- Architecture Decision Records
- ADR Template
- ADR-0001: C-Style String Formatting
- ADR-0002: Sociable Unit Tests
- ADR-0003: Go Portability Considerations
- ADR-0004: Diamond Problem in Provider Topology
- ADR-0005: DAG Change Manager for Provider Populate Topology
- ADR-0006: MongoDB-like Query DSL for Faker Providers
- ADR-0007: Code Generation over ORM
- ADR-0008: Accessing State of Encapsulated Aggregate
- Glossary