/**
 * 
 */
package fr.devoxx.sentimental.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Marks this package as the root of the domain layer.
 * 
 * The domain layer must not depend on any infrastructure, application or
 * presentation/UI code, and in particular not on persistence (Persistence
 * Ignorance). To this end, the domain layer typically declares Service and
 * Repository interfaces that are implemented technically in the infrastructure
 * layer.
 * 
 * @see <a href="http://thinkddd.com/glossary/persistence-ignorance/">Quantity</a>
 * 
 * @author Cyrille.Martraire
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.PACKAGE)
public @interface DomainLayer {

}
