Skip to content

Conversation

mvelosop
Copy link
Contributor

Summary

There was no replacement links after contacting the blog author.

Closes #11705

There was no replacement links after contacting the blog author.

Closes #11705
@mvelosop mvelosop requested a review from mairaw April 15, 2019 17:33
@mairaw
Copy link
Contributor

mairaw commented Apr 15, 2019

There are two other topics linking to that site: https://github.com/dotnet/docs/search?utf8=%E2%9C%93&q=codebetter&type=

Do you wanna tackle them on the same PR?

@mvelosop
Copy link
Contributor Author

Done @mairaw!

Copy link
Contributor

@mairaw mairaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good but I left a few questions/comments.

CQS is a simple concept—it is about methods within the same object being either queries or commands. Each method either returns state or mutates state, but not both. Even a single repository pattern object can comply with CQS. CQS can be considered a foundational principle for CQRS.

[Command and Query Responsibility Segregation (CQRS)](https://martinfowler.com/bliki/CQRS.html) was introduced by Greg Young and strongly promoted by Udi Dahan and others. It is based on the CQS principle, although it is more detailed. It can be considered a pattern based on commands and events plus optionally on asynchronous messages. In many cases, CQRS is related to more advanced scenarios, like having a different physical database for reads (queries) than for writes (updates). Moreover, a more evolved CQRS system might implement [Event-Sourcing (ES)](http://codebetter.com/gregyoung/2010/02/20/why-use-event-sourcing/) for your updates database, so you would only store events in the domain model instead of storing the current-state data. However, this is not the approach used in this guide; we are using the simplest CQRS approach, which consists of just separating the queries from the commands.
[Command and Query Responsibility Segregation (CQRS)](https://martinfowler.com/bliki/CQRS.html) was introduced by Greg Young and strongly promoted by Udi Dahan and others. It is based on the CQS principle, although it is more detailed. It can be considered a pattern based on commands and events plus optionally on asynchronous messages. In many cases, CQRS is related to more advanced scenarios, like having a different physical database for reads (queries) than for writes (updates). Moreover, a more evolved CQRS system might implement [Event-Sourcing (ES) (page 25)](https://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf#page=25) for your updates database, so you would only store events in the domain model instead of storing the current-state data. However, this is not the approach used in this guide; we are using the simplest CQRS approach, which consists of just separating the queries from the commands.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link doesn't seem very applicable. Isn't there something more approachable we can link to?
Perhaps https://martinfowler.com/eaaDev/EventSourcing.html?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, will update as per your suggestion.


## Additional resources

- **Greg Young. Versioning in an Event Sourced System** (Free online e-book) \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see a minimum price of $5? I don't think we should be linking to paid resources,

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The book is free to read online, anyway I checked with @CESARDELATORRE first.

image

Perhaps changing it to "Free to read online e-book"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's easy to miss that. How about you keep the Free online e-book but link to https://leanpub.com/esversioning/read instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, certainly much better 😊

@mairaw mairaw removed their assignment Apr 27, 2019
Copy link
Contributor

@mairaw mairaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mvelosop and sorry for the delay.

@mairaw mairaw merged commit 7b1e2d9 into master May 17, 2019
@delete-merged-branch delete-merged-branch bot deleted the mvelosop-patch-1 branch May 17, 2019 08:15
@mvelosop
Copy link
Contributor Author

No worries 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Non working links
2 participants