The following diagram illustrates the layers in our layered architecture. The arrow indicates that we only import packages in one direction. Domain will never import from use cases, interfaces, or infrastructure. The red background in the domain layer indicates that we're looking into that layer in this section:
The domain layer is where we define our business entities. These are the core business objects that we would initially think of when defining the essence of what our application does.
From our following type definitions, we quickly glean that our application moves files to and from buckets of a cloud storage provider: ...