How do you handle distributed transactions (Saga/2PC) involving EF Core?

Updated Apr 28, 2026

Short answer

Distributed transactions span multiple databases or microservices. EF Core cannot natively manage this, so you must use patterns like Saga or Outbox.

Deep explanation

In modern architectures, Two-Phase Commit (2PC) is discouraged due to blocking and lock contention. Instead, use the Outbox Pattern: EF Core saves the domain entity AND a message/event to an 'Outbox' table within a single local SaveChanges() transaction. A background worker reads the Outbox table and reliably publishes to a message broker (e.g., Kafka) to trigger downstream services.

Unlock with a Pro subscription to view this section.

View pricing

Real-world example

No real-world example available yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

Common mistakes

No common mistakes listed yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

Follow-up questions

No follow-up questions available yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

More Entity Framework interview questions

View all →