# Suggestion for designing a workflow having sync and async steps

**URL:** <https://community.temporal.io/t/suggestion-for-designing-a-workflow-having-sync-and-async-steps/16208>\
**Category:** Community Support\
**Tags:** go-sdk\
**Created:** [January 23, 2025, 7:05am UTC](https://community.temporal.io/t/suggestion-for-designing-a-workflow-having-sync-and-async-steps/16208 "2025-01-23T07:05:20Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rvt\_surbhi](https://avatars.discourse-cdn.com/v4/letter/r/7ba0ec/32.png) [@rvt\_surbhi](https://community.temporal.io/u/rvt_surbhi)\
**Post date:** [January 23, 2025, 7:05am UTC](https://community.temporal.io/t/suggestion-for-designing-a-workflow-having-sync-and-async-steps/16208/1 "2025-01-23T07:05:21Z")

</div>

![Screenshot 2025-01-23 at 12.13.54](https://us1.discourse-cdn.com/flex016/uploads/temporal/original/2X/e/ef9c2cbbdd035782cf4c4ec770cc67876c67d779.png)

Hi Temporal Team,

I’m reaching out to seek your guidance on how to best implement a complex user journey within the Temporal framework. Our journey encompasses multiple steps and flows (sync and async), including account creation, address, banking interactions, and so on.  
my major concern are as follows:

1. Workflow Design  
My initial thought was to model this entire user journey as a single Temporal workflow. Does this approach align with Temporal’s best practices? as journey involves number of steps.

if Yes,  
2. Synchronous Operations and Updates  
Within our workflow, we have several synchronous flows that depend on user input. We’ve implemented these using update handlers and are blocking the workflow’s progression using `workflow.await` until the update provides a result.

1. Async operations  
we are considering signals for async flows. How to implement both signals and updates in a single workflow.

Any insights or guidance you can provide on these matters would be greatly appreciated. We’re eager to leverage Temporal’s capabilities effectively for our use case.

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [January 24, 2025, 6:20pm UTC](https://community.temporal.io/t/suggestion-for-designing-a-workflow-having-sync-and-async-steps/16208/2 "2025-01-24T18:20:46Z")

</div>

1. Yes. But if different part of the workflow are owned by different teams you can consider breaking them into multiple deployments and link them through [Nexus](https://temporal.io/nexus).
2. SGTM
3. Consider the pattern demonstrated in [await-signals](https://github.com/temporalio/samples-go/tree/main/await-signals) sample.

Have you seen the [OMS reference app?](https://temporal.io/blog/oms-a-temporal-reference-application-for-order-management-systems)
