GithubHelp home page GithubHelp logo

dddshelf / cqrs-by-example-book-issues Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 0.0 3 KB

Leave your comments, improvements or book mistakes as an issue! Thanks ❤️

Home Page: https://leanpub.com/cqrs-by-example

License: MIT License

cqrs-by-example-book-issues's People

Contributors

carlosbuenosvinos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cqrs-by-example-book-issues's Issues

Private / public constructors in DTO coherence

In the example PostCheepCommand, you use a private constructor, in SignUpCommand a public constructor, later a named constructor.
I know the reader should know the difference and when to use it, but is confusing to follow the examples this way.
I think should explain the benefits and tradeoff of fromArray, because in the example is contrary to the phrase in the same chapter "It will also add type safety and IDE assistance, too."

Filling from array is not type safety and the IDE can not help.

Some small typos

1. Preface (ii)

image

2. Acknowledgements

image

3. A Journey Towards CQRS (page 7)

image

Incorrect reference to example implementation

Hi @carlosbuenosvinos

I think there is an incorrect reference to an example implementation in the The Command Side section of the Anatomy of CQRS chapter. The example implementation has only one named constructor:

image

...whereas two different named constructors are being referenced in the following paragraphs:

image

Thanks!

The DDD recommendation is to implement...

"The DDD recommendation is to implement each Bounded Context as a separate application that
will interact with the others via API calls or a messaging system."
Not sure about this recommendation. I can't remember it.

Projection/ReadModel Corruption

If we change the ProjectionHandler, it may leave "corrupted" data, as the logic of storing information has change.
Reading old data may crash, as the new ReadModel expect other information.
Updating all the readmodels may not be possible in large tables.
What are the options?
I normally use a "version" attribute, that helps me identify this cases, and I recalculate the projection on realtime, so the first users has some performance impact. (should consider in these case projection stampede)

Repository Add method confusing name

In the example of Repository at the begining of the book:
interface CheepRepository
{
public function add(Cheep $cheep): void;

I think is better to call it store or persist, as later in the update example you call add( ), what is confusing.

Word duplicated

Last paragraph of Other CQRS Components section, just before of Two Sides Of The Same Coin section, affected is duplicated.

It says:
Behind the scenes, the Domain Events, triggered by Command Handlers and **affected** Entities **affected**, will be handled by one or multiple Projectors or Process Managers that will generate the read models optimized for the Query Side. Query requests will simply go and fetch the data ready to be presented to customers.

Repository inside DomainModel

In the text The DomainModel will contain the Domain concepts such as the Author and Cheep Aggregates or the AuthorRepository and CheepRepository Repositories."

I think is Repositories Interfaces.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.