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

  • SEARCH
  • Home
  • 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 4266274
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T06:44:17+00:00 2026-05-21T06:44:17+00:00

We are currently evaluating CQRS and Event Sourcing architectures. I am trying to understand

  • 0

We are currently evaluating CQRS and Event Sourcing architectures. I am trying to understand what the maintenance implications of using this kind of design are. Two questions I am struggling to find answers to are this:

1)
What happens if, after an application has been up and running for a while, there is a new requirement to add an additional field to a ViewModel on the ReadModel database? Say, the Customer Zip Code is required on the CustomerList ViewModel, where it was not previously. So, the extra column can be added to the ViewModel database easily, but how does this get populated? As far as I can see, the only way is to clear the read database, and replay all the events from scratch to build back up the ReadModel Datbase. But, what if the application has been up and running for months, or years (as we hope it will). This could be millions of events to replay, just to add data for a zipcode column.

I have the same concern if, for whatever technical reason, the ReadModel Database got out of sync, or we want to add a new ReadModel database. It seems like the older the application is, and the more it is used, the harder and more expensive this is get an up to date readmodel back. Or am I missing a trick somewhere? Something like ReadModel snapshots?

2)
What happens if after all the millions of events have been replayed to build back up the read database, some of the data doesn’t line up with what was expected (i.e. it looks wrong). It is thought that perhaps a bug somewhere in the event storing, or denormalizing routines may have caused this (and it seems that if there is one thing you can rely on in coding, it is bugs). How to go about debugging this! It seems like an impossible task. Or maybe, again, I am missing a trick.

I would be interested to hear from anyone who has been running a system like this for a while, how the maintenance and upgrade paths have worked out for you.

Thanks for any time and input.

  • 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-21T06:44:18+00:00Added an answer on May 21, 2026 at 6:44 am

    The beauty of using event sourcing with CQRS is the ability to destroy the read model and rebuild it from scratch, as has been mentioned. For some reason people have this idea that it’s going to take a long time after you get above some arbitrary number of events. If you are using a relational database for your read models–and you most likely are–it’s easy to open up a transaction, read into all of the events through the handlers and then commit the transaction. It’s only when the transaction commits that we actually touch the disk. Everything else is performed in memory so it can be lightning fast. In fact, I wouldn’t be surprised to see your system crank through a few million events in just a few minutes, if that.

    Rebuilding your read models from scratch should display the exact same way as your everyday method of denormalizing the events into the read models. If not, you’ve got a bug in your read model denormalization code. The great thing here is that from your message handler perspective there’s no difference between an event being received and denormalized into the read model during regular/production scenarios and for read-model rebuild scenarios.

    If you do encounter bugs you can easily debug by streaming/copying the production events to your local workstation, setting breakpoints in your handlers, and then running those events through your read model handling code.

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

Sidebar

Related Questions

I'm currently evaluating eclipse after using Textmate for all my development for many years.
I´m currently evaluating the adquisition of a MSSQL 2012 standard edition license, however this
We are currently evaluating failover support in different databases. We were earlier using HSQLDB
Am currently evaluating the best RIA technologies to use for building a new e-commerce
I am currently evaluating Install4J for my company. We have a use case where
I'm currently evaluating Drools Flow as a workflow engine for executing up to hundreds
I'm currently evaluating options for adding sub-domain support to a new Ruby on Rails
I am currently evaluating a few of scalable memory allocators, namely nedmalloc and ptmalloc
I am currently evaluating message queue systems and RabbitMq seems like a good candidate,
We are currently evaluating upgrading from XP to Windows 7, but have one last

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.