Как я должен использовать streamId в EventStore? - PullRequest
4 голосов
/ 01 февраля 2012

В JS Oliver's EventStore как мне использовать streamId при открытии потока?

Должен ли я иметь новый поток / streamid для каждого объекта / совокупного корневого объекта?

Так должны ли мои объекты состояния заказа, которые, как я думаю, должны быть объектами ar иметь каждый streamid?

1 Ответ

6 голосов
/ 01 февраля 2012

StreamId - это ваш совокупный корневой идентификатор. Вы, вероятно, хотите включить его в свои команды. Так как они являются Guids, вы можете установить их перед отправкой команды от клиента, что означает, что вы можете воздействовать на один и тот же AR, не загружая его из модели чтения.

Вот пример использования проекта CommonDomain:

class CreateOrder {
    public Guid OrderId;
    ... 
}

class CreateOrderHandler {
    void Handle(command) {
        var order = Order.Create(command.OrderId);
        // This is using the Id property from AggregateBase in CommonDomain
        repository.Save(order, Guid.NewGuid(), null);
    }
}
...