diff --git a/impl/a2a/pom.xml b/impl/a2a/pom.xml
new file mode 100644
index 000000000..91a8fac99
--- /dev/null
+++ b/impl/a2a/pom.xml
@@ -0,0 +1,30 @@
+
+ 4.0.0
+
+ io.serverlessworkflow
+ serverlessworkflow-impl
+ 8.0.0-SNAPSHOT
+
+ serverlessworkflow-impl-a2a
+ Serverless Workflow :: Impl :: A2A
+
+
+ io.serverlessworkflow
+ serverlessworkflow-impl-core
+
+
+ org.a2aproject.sdk
+ a2a-java-sdk-client
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+
diff --git a/impl/a2a/src/main/java/io/serverlessworkflow/impl/executors/a2a/A2AExceptionHandler.java b/impl/a2a/src/main/java/io/serverlessworkflow/impl/executors/a2a/A2AExceptionHandler.java
new file mode 100644
index 000000000..05aaad38c
--- /dev/null
+++ b/impl/a2a/src/main/java/io/serverlessworkflow/impl/executors/a2a/A2AExceptionHandler.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2020-Present The Serverless Workflow Specification 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.
+ */
+package io.serverlessworkflow.impl.executors.a2a;
+
+import io.serverlessworkflow.impl.WorkflowError;
+import io.serverlessworkflow.impl.WorkflowException;
+import io.serverlessworkflow.impl.WorkflowModel;
+import io.serverlessworkflow.impl.WorkflowPosition;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Consumer;
+
+class A2AExceptionHandler implements Consumer {
+
+ private final CompletableFuture future;
+ private final WorkflowPosition position;
+
+ A2AExceptionHandler(CompletableFuture future, WorkflowPosition position) {
+ this.future = future;
+ this.position = position;
+ }
+
+ @Override
+ public void accept(Throwable ex) {
+
+ future.completeExceptionally(
+ new WorkflowException(
+ A2AUtils.workflowError(position)
+ .title(ex.getMessage())
+ .details(WorkflowError.getStackTrace(ex))
+ .build(),
+ ex));
+ }
+}
diff --git a/impl/a2a/src/main/java/io/serverlessworkflow/impl/executors/a2a/A2AExecutor.java b/impl/a2a/src/main/java/io/serverlessworkflow/impl/executors/a2a/A2AExecutor.java
new file mode 100644
index 000000000..bb1b47712
--- /dev/null
+++ b/impl/a2a/src/main/java/io/serverlessworkflow/impl/executors/a2a/A2AExecutor.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020-Present The Serverless Workflow Specification 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.
+ */
+package io.serverlessworkflow.impl.executors.a2a;
+
+import io.serverlessworkflow.impl.TaskContext;
+import io.serverlessworkflow.impl.WorkflowContext;
+import io.serverlessworkflow.impl.WorkflowModel;
+import io.serverlessworkflow.impl.WorkflowValueResolver;
+import io.serverlessworkflow.impl.executors.CallableTask;
+import java.net.URI;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import org.a2aproject.sdk.client.Client;
+import org.a2aproject.sdk.client.config.ClientConfig;
+import org.a2aproject.sdk.client.http.A2ACardResolver;
+import org.a2aproject.sdk.client.transport.jsonrpc.JSONRPCTransport;
+import org.a2aproject.sdk.client.transport.jsonrpc.JSONRPCTransportConfig;
+
+class A2AExecutor implements CallableTask {
+
+ private final WorkflowValueResolver uriSupplier;
+ private final A2ARequestDispatcher dispatcher;
+ private final WorkflowValueResolver