Skip to content

Component Diagram

C4Component
    title Component Diagram for Filebin Client Core & Client

    Container_Boundary(client_bound, "Client Layer") {
        Component(async_client, "AsyncFilebinClient", "Primary Async API")
        Component(sync_client, "FilebinClient", "Sync asyncio.run() wrapper")
    }

    Container_Boundary(core_bound, "Core Layer") {
        Component(http, "HttpTransport", "aiohttp session manager")
        Component(retry, "RetryPolicy", "Exponential backoff logic")
        Component(errors, "Error Mapping", "Translates HTTP codes to typed Exceptions")
        Component(config, "ClientConfig", "Immutable transport settings")
    }

    Container_Boundary(models_bound, "Model Layer") {
        Component(bin_model, "BinModel", "Dataclass")
        Component(file_model, "FileModel", "Dataclass")
    }

    Rel(sync_client, async_client, "Wraps")
    Rel(async_client, http, "Delegates requests")
    Rel(http, retry, "Executes via")
    Rel(http, errors, "Raises")
    Rel(http, config, "Reads settings from")

    Rel(async_client, bin_model, "Returns")
    Rel(async_client, file_model, "Returns")