anchor.diff:  !pragma graphviz_dot jdot
   skinparam componentStyle uml2
   
  -package "Blueprint App" {
  -	[Blueprint Web] --> [Blueprint Ejb]
  -}
  -
  -@enduml
  -....
  -
  +
  +
  +package "Blueprint Web" {
  +	package "Endpoint" {
  +		
  +	}
  +}
  +
  +package "Blueprint Ejb" {
  +	package "Core Api" {
  +	
  +	}
  +	 
  +	package "Core Services" {
  +	
  +	}
  +	
  +	package "Core Domain Model" {
  +	
  +	}
  +}
  +@enduml
  +....
  +
  +The main idea behind the architecture is the concept of *Dependency inversion principle*.
  +
  +[plantuml, component1, png]
  +....
  +@startuml
  +!pragma graphviz_dot jdot
  +skinparam componentStyle uml2
  +
  +package Endpoint {
  +    [RestController]
  +    [RestDomain]
  +    [RestMonitor]
  +}
  +
  +@enduml
  +....
  +
  +
  +[plantuml, component2, png]
  +....
  +@startuml
  +!pragma graphviz_dot jdot
  +skinparam componentStyle uml2
  +
  +
  +package Infrastructure {
  +	[JpaEntity]
  +	[JpaRepository]
  +	[ESEntity]
  +	[ESRepository]	
  +}
  +@enduml
  +....
  +
  +
  +[plantuml, component3, png]
  +....
  +@startuml
  +!pragma graphviz_dot jdot
  +skinparam componentStyle uml2
  +
  +package Core {
  +	[CoreDomain]
  +	[CoreApi]	
  +	[CoreServiceMaint]
  +	[CoreServiceStats]
  +}
  +@enduml
  +....
  +
  +[ditaa]
  +....
  +	+---------+       +----------+
  +	|  REST   |       |  Monitor |
  +	+---------+       +----------+
  +	      |                 |
  +	      v                 v
  +	+----------------------------+
  +	|       Infrastructure       |
  +	+----------------------------+
  +	|    JPA      |      ES      |
  +	+----------------------------+
  +	              |
  +	              v	
  +	+----------------------------+
  +	|            Core            |
  +	+----------------------------+
  +	| Domain Model | Services    |
  +	+----------------------------+
  +	
  +....
  +
  +
  +
  +
  +== References
  +
  +* https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
  +* http://tidyjava.com/onion-architecture-interesting/
  +
  
positive.code: interface "Actuator" as IActuator
  interface "REST" as IRest
  
  IMetrics - [Blueprint App]
  IActuator - [Blueprint App]
  IRest - [Blueprint App]
  
  IMetrics - [Monitoring]
  @enduml
  ....
  
  ==== Blueprint App
  
  The Blueprint application 
  
  [plantuml, diagram-arch-components-blueprint-app, png]
  ....
  
negative.code: 
  == Architecture
  
  The key benefit of the Blueprint application is the administration of notes. A note is a set of content data, tags, rubric, attachments and possible due date.
  
  The application provides different endpoints and stores the data in a persistent storage.
  
  === Components
  
  