Hi Rafi; thanks for the response.
I actually don’t see a problem there — but of course, I could be missing something. Your Product Description service would define the in which schema it publishes changes. Much like the API that it serves, this schema (which could be JSON, Avro, Thrift, etc) would not need to mimic the exact database structure. So you should be free to modify the underlying database without affecting downstream consumers.
If you were to fundamentally change the data structure in such a way that the message scheme was no longer compatible, then you’d need to perform some sort of versioning (for example, create a “v2” topic whose messages conform to a new schema, and publish to the old and the new topic for some period of time). But of course, the same would be true of your service’s API contract.
It could be that I didn’t make clear in the article that the service itself that defines the message schema and does the publishing. In other words, we don’t use an ETL tool (e.g. Golden Gate) that literally publishes the database schema itself. That would certainly cause the issue that you’re describing.
Let me know if that answers your question, or if I’ve missed anything.