Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4016060
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T09:41:39+00:00 2026-05-20T09:41:39+00:00

Assume that Book and Author are Aggregate Roots in my model. In read model

  • 0

Assume that Book and Author are Aggregate Roots in my model.

In read model i have table AuthorsAndBooks which is a list of Authors and Books joined by Book.AuthorId

When BookAdded event is fired i want to receive Author data to create a new AuthorsAndBooks line.

Because Book is an Aggregate Root, information about Author doesn’t included in BookAdded event. And i cannot include it because Author root doesn’t have getters (according to guidelines of all examples and posts about CQRS and Event Sourcing).

Usually i receive two types of answers on this question:

  1. Enrich your domain event with all data you need in event handlers. But as i said i cannot do it for Aggregates Roots.
  2. Use available data from View Model. I.e. load Author from View Model and use it to build AuthorsAndBooks row.

The last one has some problems with concurrency. Author data can be not available in View Model at the time BookAdded event is handling.

What approach do you use to solve this? Thank you.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T09:41:40+00:00Added an answer on May 20, 2026 at 9:41 am

    As a general advice, let the event handlers be idempotent and make sure you can deal with out of order message handling (either by re-queuing or building in mechanisms to fill in missing data).
    On the other hand, do question why author and book are such desperate aggregate roots. Maybe you should copy from the author upon adding a book (what the f* is “adding a book”, how’s that a command). The problem is all these made-up examples. Descend to the real world, I doubt your problem exists.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Assume that we have a large file which can be read in chunks of
Assume I have this XML... <books> <book> <author> <title> <publish_date> <isbn_number> <book> </books> ...how
Assume I'm indexing a table of books. They have title, author, description, etc. I
Assume that I have a backbone model that has a bunch of boolean attributes:
Assume that I have a list of employee names from a database (thousands, potentially
Assume that we have two sets: A=(a_1,a_2,...,a_m) and B=(b_1,b_2,...,a_n) (Not necessarily of same size).
Assume that i have created a client TCP Socket in Activity A. I want
Assume that I have 2 .php files : index.php and ajax.php This is index.php:
Assume that I have login to system using PHP + MySQL, then, after I
Assume that I have a particular class of object that defines a class method

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.