@startuml
!include C:\c4lib\C4_Container.puml

LAYOUT_WITH_LEGEND()

Container(apis, "<$server>\nServidor", "REST", "Servidor utilizado para publicar alertas y notificaciones")
Enterprise_Boundary(servicio, "Servicio de Firebase") {
    System_Ext(fsm, "<$message>\nMensajes de Firebase", "Servicio de mensajes de Firebase")
    System_Ext(funfire, "<$gears>\nFunciones de Firebase", "APIs de Firebase utilizadas para consultar y administrar suscripciones")
    SystemDb_Ext(bdfire, "<$database>\nBase de datos de Firebase", "Base de datos de suscripciones")
}
Container(cliente, "<$android>\nSuscriptor", "Android", "Cliente suscrito a un topico")

Rel(apis, funfire, "Administra suscripciones", "HTTPS")
Rel(apis, fsm, "Publica mensajes", "FSM")
Rel(cliente, funfire, "Consulta suscripciones", "HTTPS")
Rel(fsm, cliente, "Envia mensaje", "FSM")
Rel(funfire, bdfire, "Consulta y administra suscripciones")

@enduml
