--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/e5a317a6-9244-4d30-a359-881329197c6an%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAN_%2BVLXJd%2Bofs3TUqocwTCxS_x1Dv4zTSRNjjdv_YctR0SXwjw%40mail.gmail.com.
You received this message because you are subscribed to a topic in the Google Groups "DDD/CQRS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dddcqrs/Rszj12RwBtA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dddcqrs+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAN_%2BVLXJd%2Bofs3TUqocwTCxS_x1Dv4zTSRNjjdv_YctR0SXwjw%40mail.gmail.com.
You received this message because you are subscribed to a topic in the Google Groups "DDD/CQRS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dddcqrs/Rszj12RwBtA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dddcqrs+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAPJBY47icghBt1EArjjFbODk9Y%3DuQ9PbPoeXvZOA%3DJz1tJw9VQ%40mail.gmail.com.
thanks for the pointer. It's certainly a good idea to enforce compatibility rules, I'll look at the concepts implemented by Avro.
I'm also very interested in the practical effects of using such a system on feature development. From your (client's) point of view, does it have any relevant effects on feature development and domain model evolution if the write model always needs to remain backwards compatible (for a certain amount of time)? What does "backwards compatible" even mean when the write model implements a new feature or, worse, modifies an existing one?
Concrete example (assuming an event-sourced system, which of course may not be what your client uses): Say I have an aggregate A and I modify an existing use case so that instead of event E1, event E2 is now raised. While deploying the update, there are instances of the old and the new write model in production. The old version will not understand the new event E2, so what do I do to remain backwards compatible? Keep the old implementation in the new version, adding a feature flag two switch to the new implementation only after all write model instances have been updated? (Including automated tests, configuration, etc.) In theory, this sounds complex to me, but what does it feel like in practice?
On 11 Jan 2021, at 07:57, Harrison Brown <harr...@surupartners.com> wrote:
Thanks for that detailed reply, Rickard. May I ask a couple of questions?
- You switch to green when "green cluster is in live sync with blue". Does this mean that you're copying events from blue's ES to green's ES? If so, how do you handle the potential problem that new events could be written by blue just as you're about to switch to green? It sounds like there's an issue making the switch in an atomic way to guarantee green has all the events before switching.
- I can see that it's a good thing for green to be processing events so it can get its read models up to date before switching, but what about projections with side effects such as sending an email to a customer or writing data to an external system? How do you tell green that it should process the event stream into read projections but not process it to send emails (because blue will have already done those actions with side effects and we wouldn't want to do them again)?
- Do you do a full blue/green deploy for all deployments or only for major changes? I can think of a lot of changes which can be made as an addition rather than a change (and therefore don't benefit from green/blue). Eg, in my team we often write a new projection, deploy it and let it get up to date, then deploy a change to the II that starts using it, then deploy a change that removes the old projection — this strategy avoids having to coordinate live changes. Do you do something similar or do you just do a green/blue for all deployments? If you do, does that not cause a bottleneck (as I presume a full blue/green is slower than just pushing new code to the app servers).
--
You received this message because you are subscribed to a topic in the Google Groups "DDD/CQRS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dddcqrs/Rszj12RwBtA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dddcqrs+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/FCAB5B76-6727-4FC8-9E74-18A42CC09A9B%40gmail.com.
On 17 Jan 2021, at 18:18, Fabian Schmied <fabian....@gmail.com> wrote:
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CABBCAiuVxu0MtnWy%2B4AWDab%2BvyD-o4xAeOufKr7Oi%3Dag7QUR7A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/F86D4D22-BF9A-4F60-9475-CC269F062E39%40gmail.com.
On 17 Jan 2021, at 10:18, Fabian Schmied <fabian....@gmail.com> wrote:
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CABBCAiuVxu0MtnWy%2B4AWDab%2BvyD-o4xAeOufKr7Oi%3Dag7QUR7A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/B8661FE0-668B-4F23-B52C-DE53AE2E4EFF%40surupartners.com.