Вы упомянули SOA и NServiceBus, поэтому моя первоначальная мысль состояла в том, что вы посещали Udi Dahan его тренинг ADSD? Я предполагаю, что у вас есть. На этом я постараюсь ответить на ваш вопрос.
Пока у меня мало информации. Но, учитывая то, что у нас есть, я решил, что нам нужны эти свойства, чтобы хранить все, что вы упомянули.
- ProductId, по одному на каждый доступный продукт
- InventoryTotal, прикрепленный к ProductId. Это число идет вверх и вниз
- OrderId, для создания заказа
- OrderDate, чтобы убедиться, что мы можем найти заказ, который должен получить входящий запас первым.
Если у вас есть OrderId, вы можете прикрепить один или несколько ProductId, чтобы создать фактический заказ. Различные способы хранения этого технически. Может быть, в реляционной базе данных с таблицами Order и OrderLine, или, возможно, в DocumentDb, где все хранится в одном документе. Это совершенно не имеет значения в данный момент.
Предполагая, что нам нужно 4 атрибута, я не уверен, почему мы бы создали более 1 службы, чтобы разделить это? Это может измениться, когда у нас будет больше информации, но в данный момент я не вижу необходимости.
Если вы хотите обсудить это, свяжитесь с нами по адресу support@particular.net, укажите мое имя, и мы сможем продолжить беседу.