Magnus Mårtensson
Microsoft Regional Director, Azure MVP, CEO Loftysoft
Avirag Jain
Director & CTO R Systems
Mahesh Chand
Founder C# Corner, CEO Mindcracker
Chris Gali
CEO & Co-Founder Graphite
Subinder Khurana
Chief Architect StoryProcess, Founder NASSCOM DeepTech Club
Bryan Rishforth
Investor, Chairman Graphite
Bryn Everson
Director Biz Dev Graphite
Raj Tiwari
Digital Transformation Leader, Futurist and Visionary
Joseph Guadagno
Microsoft MVP, Lead Quicken Loans
Nikita Sachdev
Entrepreneur, Blockchain Enthusiast & Advisor, Social Media Influencer
Doug Wagner
COO & Founder Adapt Technical Group
Ritesh Modi
Architect, Senior Evangelist, Cloud Architect
Crystal Wenrick
Director Communications Mindcracker
Allen O’Neill
Microsoft MVP, Consulting Engineer/Architect
Praveen Kumar
CEO MCN Solutions
Chris Love
Founder Love2Dev, Microsoft MVP, Author
Sanjay Vyas
Microsoft Regional Director, Microsoft MVP, Founder & CEO SkillLabs Technologies
Veena Sarda
Deep Learning Consultant, Author
Sekhar Srinivasan
C# Corner MVP, Microsoft Certified Trainer, Pluralsight Author
Lalit Bansal
Founder & CEO - EIY SYS
Navdeep Garg
CEO Revinfotech
Prakash Tripathi
Tech Manager/Leader, Microsoft MVP, Blogger
Bhavna Jain
Breakthrough Consultant
Naveen Sharma
Enterprise Architect, Leadership Coach, Author
Vidya Vrat Agarwal
Principal Architect, Microsoft MVP, Author
Sheetal Agarwal
Founder Clownselors, Medical Clown, Trainer
Abhishek Kant
Founder GTM Catalyst
Vishnu Saran
Founder & CEO VoiceQube
Sandeep Soni
Founder & CEO Deccansoft, Microsoft Certified Trainer
Parveen Malik
AVP InfoSec & Vulnerability Management, Information Security Expert
Nitin Pandit
Microsoft MVP, Developer Evangelist, Author
Niloshima Srivastava
C# Corner MVP, Tech Architect, Trainer, Blogger
Bala Chirtsabesan
Senior Software Engineer at Microsoft, Author
Manoj Mittal
Sr. Technical Architect, C# Corner MVP, Author
Chandni Di
Co-Founder Voice of Slum
Vithal Wadje
Technical Lead, Microsoft MVP, Author
Shivam Ahuja
Founder SkillCircle, Business Mentor
Chervine Bhiwoo
Solution Architect, Microsoft MVP, Author
Saurabh Jain
Vice President Paytm, Founder Fun2Do Labs, Author
Vinay Solanki
Head IoT at Lenovo, Founder IoT-NCR
Anshu kumari
Founder Blockchainkids, Inventor, Trainer
Amit Singal
CEO Startup Buddy
Dev Pratap
Co-Founder & CEO Voice of Slum
Amey Vartak
Technology Consultant, Full Stack Developer, C# Corner MVP, Author
Viswanatha Swamy
Principal Software Engineer, C# Corner MVP, Author
Sanket Verma
Research Engineer @ Ballistics (Forensics) and Chair, PyData Delhi
Sourabh Somani
Lead Developer, Microsoft MVP, Author
Abhishek Mishra
Software Architect, C# Corner MVP, Author
Siddharth Vaghasia
Technical Consultant, C# Corner MVP, Blogger
Bassam Alugili
Senior Software Specialist, Database Expert
S Ravi Kumar
Solution Architect, C# Corner MVP, Author
Sundaram Subramanian
Full Stack Developer, C# Corner MVP, Speaker
Deepesh Somani
Solution Architect, Microsoft MVP, Author
Debasis Saha
Technical Project Manager, C# Corner MVP, Blogger, Author
Vipul Jain
Software Architect, C# Corner MVP, Author
Akshay Patel
Technical Architect, Microsoft Certified Trainer, C# Corner MVP, Author
Stephen Simon
RPA Developer, Evangelist, Author
Vivek Sharma
Founder Kingster636, AR/VR Specialist
Jeetendra Gund
Technical Lead, C# Corner MVP, Author
Sujal Beniwal
AI Enthusiast, Student
M Viknaraj
Microsoft MVP, Azure Architect, Author
Prasham Sabadra
Software Architect, C# Corner MVP, Trainer, Author
Aakash Maurya
Senior Developer, C# Corner MVP, Speaker
Ankit Sharma
Senior Software Engineer, C# Corner MVP, Author
Mangesh Gaherwar
Team Lead, C# Corner MVP, Author
Viral Jain
Technical Consultant, C# Corner MVP, Author
Bhasker Das
Solution Architect, Evangelist
Manish Dwivedi
Associate Project Manager
Ck Nitin
Programmer, Author
Rohit Gupta
Technical Trainer, Author
Manish Tewatia
Full-stack Marketer, UX Designer
Bhavya Gaur
Technical Illustrator
Rohit Tomar
SEO/SMO Expert
Web Track
Cloud & Data Track
Dev Track
Registration & Breakfast
Future of Desktop Apps with JS (ElectronJs)
Nitin Pandit
Building Serverless Microservices Using Microsoft Azure
Vithal Wadje
Innovating RPA: A Robot for Every Person
Stephen Simon
Managing Cloud Storage Accounts using Logic Apps
Viknaraj Manogararajah
Data visualization using Python
Sekhar Srinivasan
Going Cross platform with AR Foundation
Vivek Sharma
Keynote
Managing your Azure dependencies in ASP.NET Core apps using VS
Bala Chirtsabesan
Securing Applications on Intelligent Azure
Abhishek Mishra
Getting started with Blazor the Framework of Future
S Ravi Kumar
Lunch
Build Progressive Web Apps using Angular 9
Debasis Saha
Build and deploy to any platform using Azure DevOps
Chervine Bhiwoo
Deep Dive in Azure Service Bus
Akshay Patel
Build a Native Mobile Application using React Native and JavaScript
Joseph Guadagno
Making sense of Web Job, Web Job SDK and Functions in Azure
Prakash Tripathi
CloudFront Distribution in AWS
Viral Jain
Tea Break
Introduction to PowerBI
Aakash Maurya
Build Advanced SPFx solutions with React and Graph API
Siddharth Vaghasia
Build Business Intelligence Analyst (BIA) Skills
Sundaram Subramanian
Deep dive of Power Platform – AI BUILDER
Prasham Sabadra
Panel 1
What's new in SharePoint development
Vipul Jain
Build a SSO (Single Sign On) based Native JavaScript application with Microsoft Identity within 10 minutes
Manoj Mittal
Panel 2
Applications and working of AI
Veena Sarda
Deploying serverless API's with .Net core 3.0 on AWS & Azure
Amey Vartak
Panel 3
Blockchain with .NET Core (Ark)
Anshu Kumari
Closing Note & Prize Distribution
Dev Track
Cloud Track
Architecture Track
Emerging Tech Track
Registration & Breakfast
Creating Full-Stack Web Apps Using Server-Side Blazor
Ankit Sharma
Real time face recognition with MS Cognitive Services
Niloshima Srivastava
Building Scalable APIs with GraphQL
Jeetendra Gund
Future of development with AI and Blockchain
Navdeep Garg
Debugging Tips and Tricks with Visual Studio 2019
Joseph Guadagno
Azure Containers
Abhishek Kant
Enterprise Architecture
Naveen Sharma
Bot Framework - learn it fast and look like a boss!
Allen O’Neill
Keynote
.Net Core & C# 8 Performance
David McCarter
Working with Azure kubernetes services
Ritesh Modi
Becoming an Architect
Vidyavrat Agarwal
Why Techies Need to Learn Product Management
Saurabh Jain
Lunch
Build a rules engine in .Net Core
Sanjay Vyas
Building CI and CD Pipeline using Azure DevOps
Sandeep Soni
Entity Framework Core - Tips and Tricks, Performance Optimization, and Tuning
Bassam Alugili
Hacking your way into Data Science
Sanket Verma
Speed up your .Net Core Website
Sourabh Somani
Azure
Magnus Mårtensson
Demystifying Open Distro for Elasticsearch
Suman Debnath
Future of Data
Shivam Ahuja
Tea Break
gRPC with C# and .Net Core
Mangesh Gaherwar
Panel 1
Essentials of Cloud security
Parveen Malik
Power platform and Dynamics 365
Deepesh Somani
Microservices - the gRPC Way
Viswanatha Swamy
Panel 2
Reserved
Reserved
Closing Note & Prize Distribution
Using Azure Cosmos DB Change Feed to Sync Data Across Regions
Global applications need data to remain available and useful when users connect from different parts of the world. Replicating a database across Azure regions can reduce latency and improve resilience, but many systems also need to synchronize derived records, search indexes, analytics stores, or business workflows.
Azure Cosmos DB Change Feed provides a reliable stream of document changes that applications can process asynchronously. By consuming those changes and applying them to a destination container or regional data store, teams can build controlled synchronization pipelines without repeatedly scanning the source database.
The right design depends on consistency requirements, partitioning, conflict handling, recovery objectives, and the type of replication already enabled in the Cosmos DB account. Change feed is especially valuable when the destination has a different purpose from the source, such as a read model, reporting projection, or regional cache.
Why Regional Data Synchronization Matters
A multi-region application often serves requests from the nearest Azure region. Local reads improve responsiveness, while regional processing can help an organization meet availability and data residency requirements. However, a front end that reads locally may depend on records created or updated somewhere else.
Cosmos DB offers native geographic distribution for accounts that need the same containers available in multiple regions. When an application requires a separate destination schema, an independent account, or a transformed representation, native replication may not be sufficient. A change feed consumer can filter, enrich, reshape, and route updates according to application rules.
This approach also separates operational concerns. The primary container remains optimized for transactional workloads, while regional projections can be tuned for local queries. A synchronization service can process changes at its own rate, absorb temporary destination outages, and resume from a durable continuation point.
How The Change Feed Works
The change feed records modifications to items in a Cosmos DB container. Consumers read changes by logical partition key range rather than by relying on a single global sequence. This distinction matters because Cosmos DB guarantees ordering within a logical partition, but applications should not assume one total order across every partition.
The Change Feed Processor library is a common implementation choice. It uses a lease container to coordinate workers, divide partition ownership, and remember progress. If a worker stops, another instance can acquire its leases and continue processing. Azure Functions, hosted .NET services, containers, and other worker models can all consume the feed.
Cosmos DB supports different change feed modes. Latest-version mode exposes the newest version of an item and is suitable for many projection scenarios. All-versions-and-deletes mode can expose updates and deletions when the account and workload support the required capability. The selected mode affects how the destination handles removal, replay, and historical state.
A robust consumer treats delivery as at least once. The same change can be seen again after a restart, timeout, or lease movement. Destination writes therefore need to be idempotent, commonly by using the source item ID, partition key, version marker, or a deterministic event identifier.
Select A Replication Architecture
Before writing code, decide whether the destination should be another container in the same Cosmos DB account, a container in a separate account, or a different Azure data service. A same-account projection is simpler to secure and operate. A separate account can provide stronger isolation, independent throughput, or regional ownership.
The following patterns help match the design to the workload:
| Architecture | Best Fit | Main Benefit | Primary Concern |
|---|---|---|---|
| Native multi-region Cosmos DB | The same data model is needed globally | Managed replication and regional reads | Conflict policy and write consistency |
| Change feed to a regional container | A transformed local read model is required | Flexible schema and routing | Consumer lag and duplicate delivery |
| Change feed to separate accounts | Isolation, residency, or independent scaling matters | Clear operational boundaries | More networking and deployment work |
| Change feed to another Azure service | Search, analytics, or event processing is the goal | Purpose-built destination capabilities | Different reliability and replay semantics |
Native multi-region writes are often preferable when several regions must accept writes to the same logical dataset. Change feed synchronization is better suited to derived data and integration pipelines. Combining both approaches is possible: Cosmos DB can replicate the source globally while change feed processors build region-specific views.
Routing decisions should be explicit. A worker may publish every item to every destination, route by customer region, or process only records that match a region field. If the source can change that field, the service must handle movement between destinations by writing the new copy and removing or retiring the old one.
Build An Idempotent Processing Pipeline
A change feed worker usually performs four steps: read a batch, transform each item, write to the destination, and report successful progress. The checkpoint should advance only after the batch has been processed according to the application’s durability rules. Advancing it too early can lose data; delaying it can cause replay, which is acceptable when writes are idempotent.
Use deterministic destination identifiers whenever possible. For example, a projection can preserve the source item ID and partition key, allowing an upsert to safely repeat. If the destination uses a different key, store the source identity and a source version or update timestamp so that stale changes cannot overwrite newer content.
Batch operations can improve throughput, especially when several changes target the same destination partition. Still, the worker should respect request-unit budgets, payload limits, and throttling responses. Exponential backoff with jitter helps prevent a temporary 429 response from turning into a synchronized storm of retries.
Transformation logic should be kept separate from transport and checkpoint code. This makes it easier to test field mapping, redaction, regional routing, and schema evolution. Include a dead-letter path for records that repeatedly fail validation or violate destination constraints, and retain enough metadata to replay them after correction.
Manage Ordering Conflicts And Consistency
Replication across regions introduces a delay between a source write and its appearance in the destination. That delay may range from milliseconds to minutes, depending on throughput, throttling, network conditions, and worker availability. Applications should display or enforce freshness expectations rather than implying that every regional view is immediately current.
Ordering is guaranteed within a logical partition, not across unrelated partitions. If a customer’s related records must be applied in sequence, they should share a suitable partition key or carry explicit version information. When records are independent, partition-level parallelism can be used to increase throughput.
Conflicts require a defined policy. Last-write-wins may be acceptable for a cache or profile projection, while financial, inventory, or workflow records may require conditional writes and domain-specific reconciliation. ETags, sequence numbers, and transactional checks can prevent an older event from replacing a newer destination state.
A synchronization service should also distinguish a missing item from a delayed item. Soft deletion markers can make deletion propagation easier when the selected change feed mode does not expose deletes. If a source record expires through time-to-live, verify how that lifecycle appears to the consumer and whether the destination needs its own expiration policy.
Observe Recovery And Security
Operational visibility is essential because a healthy process is more than a running process. Track change feed lag, lease distribution, batch size, processing latency, retry counts, throttled requests, failures, and destination write rates. Alerts should focus on sustained lag and failed progress, not only worker availability.
Azure Monitor and Application Insights can help connect dependency calls, exceptions, traces, and performance data across the synchronization service. Guidance on monitoring .NET apps is useful when setting up telemetry for a hosted C# processor or Azure Functions implementation.
Secure both sides of the pipeline with managed identities where possible. Grant the worker only the permissions needed to read the source, manage leases, and write the destination. Keep secrets out of configuration files, use private endpoints when network isolation is required, and encrypt sensitive fields before they enter a less trusted projection.
Recovery testing should include worker termination, lease-container unavailability, destination throttling, partial batch failure, and regional outage. Document how to rebuild a destination from the source. A replay process may involve recreating the destination container, resetting leases, and processing the feed from a known starting point, so retention and backup policies must support that plan.
Apply Practical Design Rules
A small set of design decisions can prevent most synchronization failures:
- Use native Cosmos DB geographic replication when the destination is an equivalent copy of the same data model.
- Use change feed for projections, transformations, regional views, search documents, and integrations with independent schemas.
- Make destination writes idempotent and protect them with source version or ETag checks.
- Monitor lag, retries, lease ownership, throttling, and dead-letter records as first-class production metrics.
- Test replay, failover, deletion handling, and schema changes before enabling additional regions.
Capacity planning should include both source change volume and destination write volume. A projection that doubles or triples the number of stored fields may consume substantially more request units than the original update. Estimate peak rather than average activity, and leave room for catch-up after an outage.
Schema evolution deserves the same attention as infrastructure. Add compatible fields first, update consumers, and remove old fields only after every regional destination has migrated. Versioned transformation code can support a controlled transition when different destinations cannot upgrade simultaneously.
A multi-region sync design succeeds when its guarantees are visible and measurable. Document expected freshness, acceptable replay behavior, conflict resolution, recovery time, and data ownership for every destination. Those boundaries help developers select the correct consistency model and help operations teams recognize abnormal behavior quickly.
Build the first pipeline around a limited dataset, instrument every stage, and validate it under realistic load. Then expand partition coverage and regional scope in controlled increments. With an idempotent processor, durable leases, explicit conflict rules, and meaningful telemetry, Azure Cosmos DB Change Feed can turn regional synchronization into a dependable part of the application architecture. Begin with one source-to-destination flow, test recovery deliberately, and promote the design only after its lag and failure behavior meet production requirements.
1, CBD, Maharaj Surajmal Road, Near Yamuna Sports Complex, Delhi, 110032
GENERAL QUERIES
Manish Tewatia
manish@csharpcon.com
+91-9718-431-042
TICKET QUERIES
Atul Gupta
conference@csharpcon.com
+91-9910-125-804