Domain-Driven-Design Library

A collection of interfaces and abstract classes to express domain-driven design concepts in Java code used for teaching.

License

License

Categories

Categories

Doma Data ORM
GroupId

GroupId

org.microservice-api-patterns
ArtifactId

ArtifactId

domaindrivendesign-library
Last Version

Last Version

0.2.4
Release Date

Release Date

Type

Type

jar
Description

Description

Domain-Driven-Design Library
A collection of interfaces and abstract classes to express domain-driven design concepts in Java code used for teaching.
Project URL

Project URL

https://github.com/Microservice-API-Patterns/DDD-Library
Source Code Management

Source Code Management

https://github.com/Microservice-API-Patterns/DDD-Library

Download domaindrivendesign-library

How to add to project

<!-- https://jarcasting.com/artifacts/org.microservice-api-patterns/domaindrivendesign-library/ -->
<dependency>
    <groupId>org.microservice-api-patterns</groupId>
    <artifactId>domaindrivendesign-library</artifactId>
    <version>0.2.4</version>
</dependency>
// https://jarcasting.com/artifacts/org.microservice-api-patterns/domaindrivendesign-library/
implementation 'org.microservice-api-patterns:domaindrivendesign-library:0.2.4'
// https://jarcasting.com/artifacts/org.microservice-api-patterns/domaindrivendesign-library/
implementation ("org.microservice-api-patterns:domaindrivendesign-library:0.2.4")
'org.microservice-api-patterns:domaindrivendesign-library:jar:0.2.4'
<dependency org="org.microservice-api-patterns" name="domaindrivendesign-library" rev="0.2.4">
  <artifact name="domaindrivendesign-library" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.microservice-api-patterns', module='domaindrivendesign-library', version='0.2.4')
)
libraryDependencies += "org.microservice-api-patterns" % "domaindrivendesign-library" % "0.2.4"
[org.microservice-api-patterns/domaindrivendesign-library "0.2.4"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

Domain-Driven Design Library

This library is a collection of interfaces and abstract classes to express domain-driven design concepts in Java code. Most types in this library are pure marker interfaces and only for documentation purposes. An added benefit is that IDEs can show all implementations of an interface, thus making it easy to discover all implementations of for example Value Objects or Entities.

Pattern representations

Pattern (or Variant) Implementation in this library Example in Lakeside Mutual
Layered Architecture n/a Top-level packages in Lakeside Mutual backend represents the layers suggested by E. Evans in the "light blue" book
Module n/a Java sub-packages in Domain Layer of Lakeside Mutual backends
Entity Entity CustomerProfileEntity
Value Object ValueObject PolicyPeriod
Service Service See layer-specific variants below:
Application Service ApplicationService CustomerService
Domain Service DomainService InteractionLogService
Infrastructure Service InfrastructureService CustomerCoreService
Repository Repository CustomerRepository
Factory Factory CustomerFactory
Aggregate Aggregate CustomerAggregateRoot
Bounded Context BoundedContext CustomerCoreApplication
Context Map n/a n/a
Subdomain patterns n/a n/a

More Information

This website collects pointers to DDD resources, for instance:

DDD Example(s)

This DDD library was developed for the Lakeside Mutual sample application.

The DDD Sample Application that implements the running example in Eric Evans' Domain-Driven Design is also available on GitHub. It deals with cargo booking, routing and tracking.

The agile project management sample accompanying Implementing Domain-Driven Design by Vaughn Vernon can be found on GitHub as well.

org.microservice-api-patterns

Versions

Version
0.2.4