@startuml cms-container

!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml


LAYOUT_WITH_LEGEND()
title Component Diagram for CMS

' Container(admin,"Admin Panel","reactjs")


ContainerDb(eventBus,"Event bus","kafka")

Person_Ext(user,"Fraazo Consumer")

System_Ext(fraazoRD,"Rider Delivery Backend","Fraazo Internal Backend Server","go/gin")

System_Ext(twilio,"Twilio","3rd party Communication API","S/W System")



Container_Boundary(smsService,"SMS Service"){

  ' interface "twilio" as twilioInterface

  ' smsService


  ' Component(twilioInterface,"Post SMS","jax-rs")
  ' Rel(smsService,postResource,"Create Post")

  ' Component(postService,"Post Service","java")
  ' Rel(postResource,postService,"Create Post")

  ' Component(postDao,"Post Dao","jdbi")
  ' Rel(postService,postDao,"Create Post") 

  ' ComponentDb(blogPostDb,"Blog Post DB","MySQL DB")
  ' Rel(postDao,blogPostDb,"Insert Row in Post")

  ' Component(messageClient,"Message Client","java")
  ' Rel(postService,messageClient,"Post created")

  ' Rel(messageClient,eventBus,"Post Created Event","kafka")

}


@enduml