diff --git a/BUILD b/BUILD
index bf8daacde4b..f847e1bcf57 100644
--- a/BUILD
+++ b/BUILD
@@ -1962,20 +1962,15 @@ grpc_cc_library(
}),
external_deps = [
"absl/base:core_headers",
- "absl/cleanup",
"absl/container:flat_hash_map",
- "absl/container:flat_hash_set",
"absl/container:inlined_vector",
"absl/functional:any_invocable",
"absl/functional:function_ref",
- "absl/hash",
"absl/meta:type_traits",
- "absl/random",
"absl/status",
"absl/status:statusor",
"absl/strings",
"absl/strings:str_format",
- "absl/time",
"absl/types:optional",
"absl/utility",
"madler_zlib",
@@ -1989,7 +1984,6 @@ grpc_cc_library(
visibility = ["@grpc:alt_grpc_base_legacy"],
deps = [
"api_trace",
- "byte_buffer",
"call_combiner",
"call_trace",
"call_tracer",
@@ -1998,28 +1992,19 @@ grpc_cc_library(
"channel_stack_builder",
"channelz",
"config",
- "config_vars",
"cpp_impl_of",
"debug_location",
- "dynamic_annotations",
"exec_ctx",
"gpr",
"grpc_public_hdrs",
"grpc_trace",
"iomgr",
- "iomgr_buffer_list",
- "iomgr_internal_errqueue",
"iomgr_timer",
"legacy_context",
"orphanable",
- "parse_address",
"promise",
"ref_counted_ptr",
- "resource_quota_api",
- "sockaddr_utils",
"stats",
- "tcp_tracer",
- "uri_parser",
"//src/core:1999",
"//src/core:activity",
"//src/core:all_ok",
@@ -2027,14 +2012,11 @@ grpc_cc_library(
"//src/core:arena_promise",
"//src/core:atomic_utils",
"//src/core:bitset",
- "//src/core:call_factory",
"//src/core:call_filters",
"//src/core:call_final_info",
"//src/core:call_finalization",
"//src/core:call_spine",
- "//src/core:cancel_callback",
"//src/core:channel_args",
- "//src/core:channel_args_endpoint_config",
"//src/core:channel_args_preconditioning",
"//src/core:channel_fwd",
"//src/core:channel_init",
@@ -2043,75 +2025,47 @@ grpc_cc_library(
"//src/core:closure",
"//src/core:compression",
"//src/core:connectivity_state",
- "//src/core:construct_destruct",
"//src/core:context",
"//src/core:default_event_engine",
- "//src/core:dual_ref_counted",
"//src/core:error",
"//src/core:error_utils",
"//src/core:event_engine_common",
- "//src/core:event_engine_extensions",
- "//src/core:event_engine_memory_allocator_factory",
- "//src/core:event_engine_query_extensions",
- "//src/core:event_engine_shim",
- "//src/core:event_engine_tcp_socket_utils",
- "//src/core:event_engine_trace",
- "//src/core:event_log",
+ "//src/core:event_engine_context",
"//src/core:experiments",
"//src/core:for_each",
"//src/core:gpr_atm",
"//src/core:gpr_manual_constructor",
"//src/core:gpr_spinlock",
- "//src/core:grpc_sockaddr",
"//src/core:if",
- "//src/core:init_internally",
"//src/core:iomgr_fwd",
- "//src/core:iomgr_port",
- "//src/core:json",
- "//src/core:json_writer",
"//src/core:latch",
"//src/core:loop",
"//src/core:map",
"//src/core:match",
- "//src/core:memory_quota",
"//src/core:message",
"//src/core:metadata",
"//src/core:metadata_batch",
"//src/core:metrics",
"//src/core:no_destruct",
- "//src/core:per_cpu",
"//src/core:pipe",
"//src/core:poll",
- "//src/core:pollset_set",
- "//src/core:posix_event_engine_base_hdrs",
- "//src/core:posix_event_engine_endpoint",
"//src/core:promise_status",
"//src/core:promise_trace",
"//src/core:race",
- "//src/core:random_early_detection",
"//src/core:ref_counted",
- "//src/core:resolved_address",
- "//src/core:resource_quota",
- "//src/core:resource_quota_trace",
"//src/core:seq",
"//src/core:server_interface",
"//src/core:slice",
"//src/core:slice_buffer",
"//src/core:slice_cast",
"//src/core:slice_refcount",
- "//src/core:socket_mutator",
"//src/core:stats_data",
"//src/core:status_flag",
"//src/core:status_helper",
- "//src/core:strerror",
- "//src/core:thread_quota",
"//src/core:time",
"//src/core:transport_fwd",
- "//src/core:try_join",
"//src/core:try_seq",
"//src/core:useful",
- "//src/core:windows_event_engine",
- "//src/core:windows_event_engine_listener",
],
)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e022789d29a..27dc333c460 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5116,7 +5116,6 @@ add_library(grpc_authorization_provider
src/core/lib/address_utils/parse_address.cc
src/core/lib/address_utils/sockaddr_utils.cc
src/core/lib/backoff/backoff.cc
- src/core/lib/backoff/random_early_detection.cc
src/core/lib/channel/call_tracer.cc
src/core/lib/channel/channel_args.cc
src/core/lib/channel/channel_args_preconditioning.cc
@@ -5349,10 +5348,8 @@ add_library(grpc_authorization_provider
src/core/lib/surface/version.cc
src/core/lib/surface/wait_for_cq_end_op.cc
src/core/lib/transport/batch_builder.cc
- src/core/lib/transport/call_factory.cc
src/core/lib/transport/call_filters.cc
src/core/lib/transport/call_final_info.cc
- src/core/lib/transport/call_size_estimator.cc
src/core/lib/transport/call_spine.cc
src/core/lib/transport/connectivity_state.cc
src/core/lib/transport/error_utils.cc
@@ -5442,8 +5439,6 @@ target_link_libraries(grpc_authorization_provider
absl::function_ref
absl::hash
absl::type_traits
- absl::random_bit_gen_ref
- absl::random_distributions
absl::statusor
absl::span
absl::utility
diff --git a/Package.swift b/Package.swift
index f7b1930f099..a2eee8f6ca6 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1202,6 +1202,7 @@ let package = Package(
"src/core/lib/event_engine/default_event_engine_factory.cc",
"src/core/lib/event_engine/default_event_engine_factory.h",
"src/core/lib/event_engine/event_engine.cc",
+ "src/core/lib/event_engine/event_engine_context.h",
"src/core/lib/event_engine/extensions/can_track_errors.h",
"src/core/lib/event_engine/extensions/chaotic_good_extension.h",
"src/core/lib/event_engine/extensions/supports_fd.h",
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index a28fd37bcc2..5d9b6c355b5 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -847,6 +847,7 @@ libs:
- src/core/lib/event_engine/common_closures.h
- src/core/lib/event_engine/default_event_engine.h
- src/core/lib/event_engine/default_event_engine_factory.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/event_engine/extensions/can_track_errors.h
- src/core/lib/event_engine/extensions/chaotic_good_extension.h
- src/core/lib/event_engine/extensions/supports_fd.h
@@ -2355,6 +2356,7 @@ libs:
- src/core/lib/event_engine/common_closures.h
- src/core/lib/event_engine/default_event_engine.h
- src/core/lib/event_engine/default_event_engine_factory.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/event_engine/extensions/can_track_errors.h
- src/core/lib/event_engine/extensions/chaotic_good_extension.h
- src/core/lib/event_engine/extensions/supports_fd.h
@@ -4405,7 +4407,6 @@ libs:
- src/core/lib/address_utils/sockaddr_utils.h
- src/core/lib/avl/avl.h
- src/core/lib/backoff/backoff.h
- - src/core/lib/backoff/random_early_detection.h
- src/core/lib/channel/call_finalization.h
- src/core/lib/channel/call_tracer.h
- src/core/lib/channel/channel_args.h
@@ -4441,6 +4442,7 @@ libs:
- src/core/lib/event_engine/common_closures.h
- src/core/lib/event_engine/default_event_engine.h
- src/core/lib/event_engine/default_event_engine_factory.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/event_engine/extensions/can_track_errors.h
- src/core/lib/event_engine/extensions/chaotic_good_extension.h
- src/core/lib/event_engine/extensions/supports_fd.h
@@ -4599,7 +4601,6 @@ libs:
- src/core/lib/promise/activity.h
- src/core/lib/promise/all_ok.h
- src/core/lib/promise/arena_promise.h
- - src/core/lib/promise/cancel_callback.h
- src/core/lib/promise/context.h
- src/core/lib/promise/detail/basic_seq.h
- src/core/lib/promise/detail/join_state.h
@@ -4623,7 +4624,6 @@ libs:
- src/core/lib/promise/seq.h
- src/core/lib/promise/status_flag.h
- src/core/lib/promise/trace.h
- - src/core/lib/promise/try_join.h
- src/core/lib/promise/try_seq.h
- src/core/lib/resource_quota/api.h
- src/core/lib/resource_quota/arena.h
@@ -4687,10 +4687,8 @@ libs:
- src/core/lib/surface/validate_metadata.h
- src/core/lib/surface/wait_for_cq_end_op.h
- src/core/lib/transport/batch_builder.h
- - src/core/lib/transport/call_factory.h
- src/core/lib/transport/call_filters.h
- src/core/lib/transport/call_final_info.h
- - src/core/lib/transport/call_size_estimator.h
- src/core/lib/transport/call_spine.h
- src/core/lib/transport/connectivity_state.h
- src/core/lib/transport/custom_metadata.h
@@ -4758,7 +4756,6 @@ libs:
- src/core/lib/address_utils/parse_address.cc
- src/core/lib/address_utils/sockaddr_utils.cc
- src/core/lib/backoff/backoff.cc
- - src/core/lib/backoff/random_early_detection.cc
- src/core/lib/channel/call_tracer.cc
- src/core/lib/channel/channel_args.cc
- src/core/lib/channel/channel_args_preconditioning.cc
@@ -4991,10 +4988,8 @@ libs:
- src/core/lib/surface/version.cc
- src/core/lib/surface/wait_for_cq_end_op.cc
- src/core/lib/transport/batch_builder.cc
- - src/core/lib/transport/call_factory.cc
- src/core/lib/transport/call_filters.cc
- src/core/lib/transport/call_final_info.cc
- - src/core/lib/transport/call_size_estimator.cc
- src/core/lib/transport/call_spine.cc
- src/core/lib/transport/connectivity_state.cc
- src/core/lib/transport/error_utils.cc
@@ -5043,8 +5038,6 @@ libs:
- absl/functional:function_ref
- absl/hash:hash
- absl/meta:type_traits
- - absl/random:bit_gen_ref
- - absl/random:distributions
- absl/status:statusor
- absl/types:span
- absl/utility:utility
@@ -5233,6 +5226,7 @@ targets:
language: c++
headers:
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/bitset.h
- src/core/lib/gprpp/down_cast.h
@@ -6386,6 +6380,7 @@ targets:
- src/core/lib/channel/channel_args.h
- src/core/lib/compression/compression_internal.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -7664,6 +7659,7 @@ targets:
- src/core/ext/upb-gen/google/rpc/status.upb.h
- src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -9158,6 +9154,7 @@ targets:
- src/core/ext/upb-gen/google/rpc/status.upb.h
- src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -9764,6 +9761,7 @@ targets:
- src/core/ext/upb-gen/google/rpc/status.upb.h
- src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -9899,6 +9897,7 @@ targets:
- src/core/ext/upb-gen/google/rpc/status.upb.h
- src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -11518,6 +11517,7 @@ targets:
language: c++
headers:
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/down_cast.h
- src/core/lib/gprpp/orphanable.h
@@ -11559,6 +11559,7 @@ targets:
- src/core/ext/upb-gen/google/rpc/status.upb.h
- src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -12068,6 +12069,7 @@ targets:
language: c++
headers:
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/bitset.h
- src/core/lib/gprpp/down_cast.h
@@ -12231,6 +12233,7 @@ targets:
- src/core/ext/upb-gen/google/rpc/status.upb.h
- src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/experiments/config.h
- src/core/lib/experiments/experiments.h
- src/core/lib/gpr/spinlock.h
@@ -12837,6 +12840,7 @@ targets:
build: test
language: c++
headers:
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/down_cast.h
- src/core/lib/gprpp/orphanable.h
@@ -13125,6 +13129,7 @@ targets:
build: test
language: c++
headers:
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/down_cast.h
- src/core/lib/gprpp/notification.h
@@ -14042,6 +14047,7 @@ targets:
language: c++
headers:
- src/core/lib/debug/trace.h
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/bitset.h
- src/core/lib/gprpp/down_cast.h
@@ -19611,6 +19617,7 @@ targets:
build: test
language: c++
headers:
+ - src/core/lib/event_engine/event_engine_context.h
- src/core/lib/gprpp/atomic_utils.h
- src/core/lib/gprpp/down_cast.h
- src/core/lib/gprpp/notification.h
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index e4e0db337dc..77e9a3af608 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -930,6 +930,7 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/common_closures.h',
'src/core/lib/event_engine/default_event_engine.h',
'src/core/lib/event_engine/default_event_engine_factory.h',
+ 'src/core/lib/event_engine/event_engine_context.h',
'src/core/lib/event_engine/extensions/can_track_errors.h',
'src/core/lib/event_engine/extensions/chaotic_good_extension.h',
'src/core/lib/event_engine/extensions/supports_fd.h',
@@ -2195,6 +2196,7 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/common_closures.h',
'src/core/lib/event_engine/default_event_engine.h',
'src/core/lib/event_engine/default_event_engine_factory.h',
+ 'src/core/lib/event_engine/event_engine_context.h',
'src/core/lib/event_engine/extensions/can_track_errors.h',
'src/core/lib/event_engine/extensions/chaotic_good_extension.h',
'src/core/lib/event_engine/extensions/supports_fd.h',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 73c31d9c6ed..859ffe4776a 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -1318,6 +1318,7 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/default_event_engine_factory.cc',
'src/core/lib/event_engine/default_event_engine_factory.h',
'src/core/lib/event_engine/event_engine.cc',
+ 'src/core/lib/event_engine/event_engine_context.h',
'src/core/lib/event_engine/extensions/can_track_errors.h',
'src/core/lib/event_engine/extensions/chaotic_good_extension.h',
'src/core/lib/event_engine/extensions/supports_fd.h',
@@ -2977,6 +2978,7 @@ Pod::Spec.new do |s|
'src/core/lib/event_engine/common_closures.h',
'src/core/lib/event_engine/default_event_engine.h',
'src/core/lib/event_engine/default_event_engine_factory.h',
+ 'src/core/lib/event_engine/event_engine_context.h',
'src/core/lib/event_engine/extensions/can_track_errors.h',
'src/core/lib/event_engine/extensions/chaotic_good_extension.h',
'src/core/lib/event_engine/extensions/supports_fd.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index 4c7b75d8e43..74880a4e33c 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -1208,6 +1208,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/event_engine/default_event_engine_factory.cc )
s.files += %w( src/core/lib/event_engine/default_event_engine_factory.h )
s.files += %w( src/core/lib/event_engine/event_engine.cc )
+ s.files += %w( src/core/lib/event_engine/event_engine_context.h )
s.files += %w( src/core/lib/event_engine/extensions/can_track_errors.h )
s.files += %w( src/core/lib/event_engine/extensions/chaotic_good_extension.h )
s.files += %w( src/core/lib/event_engine/extensions/supports_fd.h )
diff --git a/package.xml b/package.xml
index 834f8b1aa74..9b4c2ff2849 100644
--- a/package.xml
+++ b/package.xml
@@ -1190,6 +1190,7 @@
+
diff --git a/src/core/BUILD b/src/core/BUILD
index bbc92c0bb8e..0a333928eb5 100644
--- a/src/core/BUILD
+++ b/src/core/BUILD
@@ -592,7 +592,7 @@ grpc_cc_library(
deps = [
"activity",
"context",
- "default_event_engine",
+ "event_engine_context",
"poll",
"time",
"//:event_engine_base_hdrs",
@@ -906,6 +906,7 @@ grpc_cc_library(
"atomic_utils",
"construct_destruct",
"context",
+ "event_engine_context",
"no_destruct",
"poll",
"promise_factory",
@@ -2608,6 +2609,21 @@ grpc_cc_library(
],
)
+grpc_cc_library(
+ name = "event_engine_context",
+ hdrs = [
+ "lib/event_engine/event_engine_context.h",
+ ],
+ visibility = [
+ "@grpc:alt_grpc_base_legacy",
+ ],
+ deps = [
+ "context",
+ "//:event_engine_base_hdrs",
+ "//:gpr",
+ ],
+)
+
grpc_cc_library(
name = "default_event_engine",
srcs = [
@@ -2622,7 +2638,6 @@ grpc_cc_library(
],
deps = [
"channel_args",
- "context",
"default_event_engine_factory",
"event_engine_trace",
"no_destruct",
@@ -3549,6 +3564,7 @@ grpc_cc_library(
"channel_args",
"channel_fwd",
"context",
+ "event_engine_context",
"grpc_server_config_selector",
"grpc_service_config",
"metadata_batch",
@@ -7443,10 +7459,10 @@ grpc_cc_library(
"chaotic_good_settings_metadata",
"closure",
"context",
- "default_event_engine",
"error",
"error_utils",
"event_engine_common",
+ "event_engine_context",
"event_engine_extensions",
"event_engine_query_extensions",
"event_engine_tcp_socket_utils",
diff --git a/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc b/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc
index fc78beba190..0be80a238a0 100644
--- a/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc
+++ b/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc
@@ -31,6 +31,7 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/context.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/event_engine/event_engine_context.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/gprpp/sync.h"
diff --git a/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc b/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc
index 47f8af13760..2ef11595b04 100644
--- a/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc
+++ b/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc
@@ -34,7 +34,6 @@
#include "src/core/ext/transport/chaotic_good/settings_metadata.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
-#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/event_engine/extensions/chaotic_good_extension.h"
#include "src/core/lib/event_engine/query_extensions.h"
#include "src/core/lib/event_engine/tcp_socket_utils.h"
diff --git a/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc b/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc
index ec0bcac7358..70bf644c2a9 100644
--- a/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc
+++ b/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc
@@ -38,7 +38,7 @@
#include "src/core/ext/transport/chaotic_good/settings_metadata.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
-#include "src/core/lib/event_engine/default_event_engine.h"
+#include "src/core/lib/event_engine/event_engine_context.h"
#include "src/core/lib/event_engine/extensions/chaotic_good_extension.h"
#include "src/core/lib/event_engine/query_extensions.h"
#include "src/core/lib/event_engine/resolved_address_internal.h"
diff --git a/src/core/lib/channel/promise_based_filter.h b/src/core/lib/channel/promise_based_filter.h
index 971e98895b1..852965c5686 100644
--- a/src/core/lib/channel/promise_based_filter.h
+++ b/src/core/lib/channel/promise_based_filter.h
@@ -47,8 +47,8 @@
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/context.h"
-#include "src/core/lib/event_engine/default_event_engine.h" // IWYU pragma: keep
-#include "src/core/lib/gprpp/crash.h"
+#include "src/core/lib/event_engine/default_event_engine.h"
+#include "src/core/lib/event_engine/event_engine_context.h" // IWYU pragma: keep
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/call_combiner.h"
diff --git a/src/core/lib/event_engine/default_event_engine.h b/src/core/lib/event_engine/default_event_engine.h
index 0601915e1c0..1725447ffdf 100644
--- a/src/core/lib/event_engine/default_event_engine.h
+++ b/src/core/lib/event_engine/default_event_engine.h
@@ -23,12 +23,6 @@
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/debug_location.h"
-#include "src/core/lib/promise/context.h"
-
-namespace grpc_core {
-template <>
-struct ContextType {};
-} // namespace grpc_core
namespace grpc_event_engine {
namespace experimental {
diff --git a/src/core/lib/event_engine/event_engine_context.h b/src/core/lib/event_engine/event_engine_context.h
new file mode 100644
index 00000000000..c256f696117
--- /dev/null
+++ b/src/core/lib/event_engine/event_engine_context.h
@@ -0,0 +1,31 @@
+// Copyright 2024 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef GRPC_SRC_CORE_LIB_EVENT_ENGINE_EVENT_ENGINE_CONTEXT_H
+#define GRPC_SRC_CORE_LIB_EVENT_ENGINE_EVENT_ENGINE_CONTEXT_H
+
+#include
+
+#include
+
+#include "src/core/lib/promise/context.h"
+
+namespace grpc_core {
+
+template <>
+struct ContextType {};
+
+} // namespace grpc_core
+
+#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_EVENT_ENGINE_CONTEXT_H
diff --git a/src/core/lib/promise/activity.h b/src/core/lib/promise/activity.h
index 65b644902c7..17a2b70516c 100644
--- a/src/core/lib/promise/activity.h
+++ b/src/core/lib/promise/activity.h
@@ -31,6 +31,7 @@
#include
+#include "src/core/lib/event_engine/event_engine_context.h"
#include "src/core/lib/gprpp/construct_destruct.h"
#include "src/core/lib/gprpp/no_destruct.h"
#include "src/core/lib/gprpp/orphanable.h"
diff --git a/src/core/lib/promise/sleep.cc b/src/core/lib/promise/sleep.cc
index 4ddae17e0fd..d6da73cfe60 100644
--- a/src/core/lib/promise/sleep.cc
+++ b/src/core/lib/promise/sleep.cc
@@ -20,7 +20,7 @@
#include
-#include "src/core/lib/event_engine/default_event_engine.h" // IWYU pragma: keep
+#include "src/core/lib/event_engine/event_engine_context.h" // IWYU pragma: keep
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/promise/activity.h"
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index f855fd03361..4d50f2cd55c 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -2207,6 +2207,7 @@ src/core/lib/event_engine/default_event_engine.h \
src/core/lib/event_engine/default_event_engine_factory.cc \
src/core/lib/event_engine/default_event_engine_factory.h \
src/core/lib/event_engine/event_engine.cc \
+src/core/lib/event_engine/event_engine_context.h \
src/core/lib/event_engine/extensions/can_track_errors.h \
src/core/lib/event_engine/extensions/chaotic_good_extension.h \
src/core/lib/event_engine/extensions/supports_fd.h \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index a61ab574132..5f2f1f4e642 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1979,6 +1979,7 @@ src/core/lib/event_engine/default_event_engine.h \
src/core/lib/event_engine/default_event_engine_factory.cc \
src/core/lib/event_engine/default_event_engine_factory.h \
src/core/lib/event_engine/event_engine.cc \
+src/core/lib/event_engine/event_engine_context.h \
src/core/lib/event_engine/extensions/can_track_errors.h \
src/core/lib/event_engine/extensions/chaotic_good_extension.h \
src/core/lib/event_engine/extensions/supports_fd.h \