<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CDC on Yutong Jin</title><link>https://yutongjin.com/tags/cdc/</link><description>Recent content in CDC on Yutong Jin</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 09 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://yutongjin.com/tags/cdc/index.xml" rel="self" type="application/rss+xml"/><item><title> Change Data Capture (CDC) Summary</title><link>https://yutongjin.com/posts/cdc/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://yutongjin.com/posts/cdc/</guid><description>&lt;h3 id="change-data-capture-cdc-summary"&gt;Change Data Capture (CDC) Summary&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt;: Track and propagate data changes (insert, update, delete) from a source to downstream systems.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Write-Ahead Log (WAL)&lt;/strong&gt;: In relational databases (e.g., PostgreSQL), all changes are logged before being applied. CDC reads from the WAL to capture changes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NoSQL&lt;/strong&gt;: In systems like DynamoDB, item-level streams capture changes in a similar fashion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pipeline Actions&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detect changes.&lt;/li&gt;
&lt;li&gt;Send to downstream systems.&lt;/li&gt;
&lt;li&gt;Examples: replicate to read replicas, sync to a search index (Elasticsearch), or forward to Kafka.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Key Considerations&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>Practice 4-9</title><link>https://yutongjin.com/posts/49_learning/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://yutongjin.com/posts/49_learning/</guid><description>&lt;h3 id="learning"&gt;Learning&lt;/h3&gt;
&lt;h1 id="-video-upload--moderation-system-tiktok-style"&gt;🎬 Video Upload &amp;amp; Moderation System (TikTok-style)&lt;/h1&gt;
&lt;h2 id="1-functional-requirements"&gt;1. Functional Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Creators can upload videos&lt;/li&gt;
&lt;li&gt;Users can view videos&lt;/li&gt;
&lt;li&gt;Reviewers can moderate videos&lt;/li&gt;
&lt;li&gt;Users get notified if content is banned&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-non-functional-requirements"&gt;2. Non-Functional Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;High availability (eventual consistency acceptable)&lt;/li&gt;
&lt;li&gt;High throughput for uploads and reads&lt;/li&gt;
&lt;li&gt;Low latency for video playback&lt;/li&gt;
&lt;li&gt;Scalable for viral (hot) content&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-high-level-architecture"&gt;3. High-Level Architecture&lt;/h2&gt;
&lt;h3 id="upload-flow"&gt;Upload Flow&lt;/h3&gt;
&lt;p&gt;Client → API Gateway → UploadService → S3&lt;br&gt;
↓&lt;br&gt;
Kafka&lt;/p&gt;
&lt;h3 id="read-flow"&gt;Read Flow&lt;/h3&gt;
&lt;p&gt;User → CDN → S3&lt;/p&gt;</description></item></channel></rss>