anchor.diff:  interface "Actuator" as IActuator
   interface "REST" as IRest
   
  +[ES] <<Storage>>
  +
   IMetrics - [Blueprint App]
   IActuator - [Blueprint App]
   IRest - [Blueprint App]
   
   IMetrics - [Monitoring]
  +
  +[Blueprint App] --> [ES]
   @enduml
   ....
   
   ==== Blueprint App
   
  -The Blueprint application 
  +
  +[plantuml, diagram-arch-class-blueprint-app, png]
  +....
  +@startuml
  +!pragma graphviz_dot jdot
  +skinparam componentStyle uml2
  +
  +class Note {
  +	String title
  +	String content
  +	Date createdAt
  +	Date updatedAt
  +	String createdBy
  +	List<String> tags
  +	List<NoteAttachment> attachments
  +}
  +
  +class NoteAttachment {
  +	String name
  +	Blob attachment
  +	Date createdAt
  +}
  +
  +Note o-- NoteAttachment
  +
  +@enduml
  +....
  + 
  +The following use cases are part and parcel of the application. 
  +
  +[plantuml, diagram-arch-usecase-blueprint-app, png]
  +....
  +@startuml
  +!pragma graphviz_dot jdot
  +skinparam componentStyle uml2
  +
  +actor :Enduser: as E1
  +actor :Admin: as A1
  +
  +(Search Note) as (UCSearch)
  +(Maintaine Note) as (UCEdit)
  +(UCEdit) <|-- (Create Note)
  +(UCEdit) <|-- (Edit Note)
  +(UCEdit) <|-- (Delete Note)
  +(UCEdit) <|-- (Share Note)
  +
  +(Retrieve Stats) as (UCStats)
  +
  +E1 --> (UCSearch)
  +E1 --> (UCEdit)
  +
  +A1 --> (UCStats)
  +@enduml
  +....
  +
  +Regarding the clean/onion architecture looks the distribution of the components as follows:
   
   [plantuml, diagram-arch-components-blueprint-app, png]
   ....
  
positive.code: !pragma graphviz_dot jdot
  skinparam componentStyle uml2
  
  package "Blueprint App" {
  	[Blueprint Web] --> [Blueprint Ejb]
  }
  
  @enduml
  ....
  
  
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
  
  