JDon.org

Latest News

Jdon Framework : CQRS/DDD/ES Java Framework

JdonFramework is a java framework that you can use to build your Domain Driven Design + CQRS + EventSource applications with asynchronous concurrency and higher throughput.

JdonFramework = DDD + Event Sourcing + CQRS + Asynchronous + Concurrent + Higher throughput.

JdonFramework = Spring(Ioc/DI/AOP) + Ruby(DCI) + Scala(Actor)

domain events in JdonFramework: a in-memeory model can concurrently publish events to its subscribers.

JdonFramework's event engine is from Disruptor that be recommended by LMAX Architecture wriiten by Martin Fowler. (Nothing Blocks)

Feature of Jdonframework: combining DCI with DDD aggregate and Domain Events.

dci+de

 

 

Domain-driven design (DDD)

Domain-driven design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts. details.

ddd

Eric Evans on How Technology Influences DDD(2012) 

CQRS: Command-query Responsibility Segregation   It's a pattern that I first heard described by Greg Young. At its heart is a simple notion that you can use a different model to update information than the model you use to read information. details.

Domain Events: Captures the memory of something interesting which affects the domain. details, see How to create fully encapsulated Domain Models

With JdonFramework you can easily develope a Event Sourcing and CQRS system. in CQRS, by disruptor Jdon can send domain events to #rabbitmqand #zeromq - #distributed.

DCI:Data Context and Interactions: in a Context, a Role played by  a Data model triggers  interaction behavior.

JdonFramework = DDD+DCI+ES/CQRS: in JdonFramework , A Role played by a Domain Model triggers  a interaction event, such as sending a event or message to other consumers.

Object Oriented Programming: A Critical Approach say: OO is really about message passing:

“The message-sending metaphor provides modularity by decoupling the intent of a message (embodied in its name) from the method used by the recipient to carry out the intent. Structural information is similarly protected because all access to the internal state of an object is through this same message interface.”

In JdonFramework, A aggregate is a modularity; aggregate root is the message-sending and message-recipient metaphor.see below picture, more details in : Robot sample

modularity

Message or Event is a better way for aggregate root that directly exposed behavior and hold references to others. Message or Event can better protect root entity's internal state not expose.

aggregate root

Domain Events(Event Sourcing) for Evans DDD :

Real domain logic is in the Domain Model, Outside the domain are these adapters, that listen to messages sent by the domain. For instance, the domain could ‘broadcast’ a message(Domain Events) that a new domain object has been created. An appropriate listener receives this message and calls a method on a persistence service. This service knows how to store the object in the database.

Eric evans: Acknowledging CAP at the Root -- in the Domain Model

 

 Key Features:

 

  1. Domain-Driven Dsign Development, supports in-memory cache model.
  2. Event Sourcing:Never blocks ,Nothing blocks, concurrent programming; Event-driven Architecture(EDA); asynchronous programming,concurrency pattern, lazy evaluation.
  3. DI and AOP framework, POJO autowiring that implements Dependency Injection, and all components can be replaced, even include the framework itself. introduce any pojo as a inteceptor.
  4. Command Query Responsibility Segregation(CQRS/CQS) , support the default implementations for CRUD and auto paginator for query of large datas .
  5. Lazy initialization or evaluation, improving performance by in-memory cache. memory-consumption-wise
  6. Be easily integration with Spring framework.

Jdon Framework = DDD + Domain Events(CQRS)+ Ioc/DI + AOP + CRUD + Cache

Reference:


Blog

DDD CQRS EventSourcing example source: football Match

CES:Context Event and State

DDD DCI and Domain Events example

how to enhance Jdon framework to DCI framework ?

Immutability is Easy

how to easily develop a non-blocking concurrent application ?

API

JdonFramework API

History

Jdon framework was submitted to sf.net in Dec 2004. and release a stable and mature version in JUN 2005. until Jdon Framework 6.2 released in 2009, JF is truly stableDDD framework for java.

Others resources

Book Review: Implementing Domain-Driven Design

MSDN:DDD+CQRS

Find us on Google+

Click here to lend your support to: Jdonframework and make a donation at www.pledgie.com !

contact us: banQ163.com

 

Download

Document

Qucik Start

Examples

Github

jivejdon

JdonMVC

Jdon中文

sf

Click here to lend your support to: Jdonframework and make a donation at www.pledgie.com !

Donate Bitcoins