@startuml skinparam packageStyle rectangle package "furniture-service" { interface IFurnitureAvailabilityContractAdapter interface IGetFurnitureAvailabilityUseCase class GetFurnitureAvailabilityUseCase interface ICatalogProductReadPort interface IFurnitureAvailabilityReadPort interface IFurnitureAvailabilityGrpcContractAdapter class GetFurnitureAvailabilityGrpcContract class GetFurnitureAvailabilityRequest class GetFurnitureAvailabilityResponse GetFurnitureAvailabilityUseCase ..|> IGetFurnitureAvailabilityUseCase GetFurnitureAvailabilityUseCase --> IFurnitureAvailabilityContractAdapter GetFurnitureAvailabilityUseCase --> ICatalogProductReadPort GetFurnitureAvailabilityUseCase --> IFurnitureAvailabilityReadPort IFurnitureAvailabilityGrpcContractAdapter --> GetFurnitureAvailabilityGrpcContract IFurnitureAvailabilityGrpcContractAdapter --> GetFurnitureAvailabilityRequest IGetFurnitureAvailabilityUseCase --> GetFurnitureAvailabilityRequest IGetFurnitureAvailabilityUseCase --> GetFurnitureAvailabilityResponse } package "furniture-bff" as FurnitureBff package "furniture-dal" as FurnitureDal package "building-block-catalog" as CatalogContracts package "building-block-inventory" as InventoryContracts FurnitureBff --> IGetFurnitureAvailabilityUseCase ICatalogProductReadPort ..> CatalogContracts IFurnitureAvailabilityReadPort ..> FurnitureDal IFurnitureAvailabilityReadPort ..> InventoryContracts @enduml