Hi Hongshun, Good point! Both approaches serve similar purposes exposing the changelog as append-only with operation type metadata.
The key differences with virtual tables: 1. *No duplicate table definitions*: Users can query orders and orders$changelog simultaneously without creating two tables with different configs 2. *Additional metadata*: Virtual tables expose _log_offset and _commit_timestamp alongside _change_type, useful for incremental processing and debugging 3. *$binlog nested structure*: Provides before/after ROW columns - combining UPDATE_BEFORE and UPDATE_AFTER into a single row (Debezium-style), which a config flag cannot achieve 4. *Consistency*: Follows existing $lake virtual table pattern in Fluss Best Regards, Mehul Batra
