I'm having trouble defining the boundaries of my bounded context(s). I have the following, simplified/incomplete, versions of the classes in my domain. All of these classes are unique so they are Entities and I think they should be AR's as well, though I'm less sure about that last point. A Customer, User and Carrier are necessary to make a load, but they can all obviously exist without a load. They have validation and other actions that must be completed before they can be added to a Load. User is responsible for initiating CRUD operations on Customer, Carrier and Loads which include adding Carriers and Customers to Loads.
Should Customers, Carriers, Loads and Users each be AR's and/or have their own bounded contexts?
public class Customer
{
public Guid Id { get; protected set; }
public string Name { get; protected set; }
public CustomerStatus Status { get; protected set; }
}
public class Carrier
{
public Guid Id { get; protected set; }
public string Name { get; protected set; }
public CarrierStatus Status { get; protected set; }
}
public class User
{
public Guid Id { get; protected set; }
public Role Role { get; protected set; }
}
public class Load
{
public Guid Id { get; protected set; }
public LoadStatus Status { get; protected set; }
public Guid CustomerId { get; protected set; }
public Guid CarrierId { get; protected set; }
public Address Origin { get; protected set; }
public Address Destination { get; protected set; }
public string Commodity { get; protected set; }
}