@startuml allowmixing skinparam PackageStyle Frame package Util {} package EpisodeActionApi { package EpisodeActionController {} package EpisodeActionService {} package EpisodeActionDAO {} } package SubscriptionsApi { package SubscriptionController {} package SubscriptionService {} package SubscriptionDAO {} } package AuthenticationApi { package AuthenticationController {} package AuthenticationService {} package AuthenticationDAO {} } package Model {} database Database class PSEApplication () HTTPS HTTPS -down- PSEApplication Model .o Database: ORM PSEApplication --> EpisodeActionController PSEApplication --> SubscriptionController PSEApplication --> AuthenticationController AuthenticationController --> AuthenticationService AuthenticationService --> AuthenticationDAO AuthenticationDAO --> Database SubscriptionController --> SubscriptionService SubscriptionService --> SubscriptionDAO SubscriptionDAO --> Database EpisodeActionController --> EpisodeActionService EpisodeActionService --> EpisodeActionDAO EpisodeActionDAO --> Database EpisodeActionService .left.> Util: Async SubscriptionService .right.> Util: Async Util .left.> EpisodeActionDAO Util ..> SubscriptionDAO @enduml