- https://medusajs.com/blog/announcing-medusa-workflows-sdk/
- https://github.com/medusajs/workflow-examples
- https://docs.medusajs.com/v1/development/workflows
- https://docs.medusajs.com/learn/fundamentals/workflows#content
- https://www.npmjs.com/package/@medusajs/workflows-sdk
What is a Workflow?
In digital commerce you typically have many systems involved in your operations. For example, you may have an ERP system that holds product master data and accounting reports, a CMS system for content, a CRM system for managing customer campaigns, a payment service to process credit cards, and so on. Sometimes you may even have custom built applications that need to participate in the commerce stack. One of the biggest challenges when operating a stack like this is ensuring consistency in the data spread across systems.
Medusa has a built-in durable execution engine to help complete tasks that span multiple systems. You orchestrate your operations across systems in Medusa instead of having to manage it yourself. Other commerce platforms don't have this capability, which makes them a bottleneck to building customizations and iterating quickly.
A workflow is a series of queries and actions, called steps, that complete a task. You construct a workflow similar to how you create a JavaScript function.
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/core/workflows-sdk/src
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/core/core-flows/src
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/core/orchestration/src/workflow
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/modules/event-bus-local
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/modules/event-bus-redis
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/modules/workflow-engine-inmemory
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/modules/workflow-engine-redis
- https://github.com/medusajs/medusa/tree/v2.8.4/packages/core/core-flows/src
- https://github.com/medusajs/medusa/blob/v2.8.4/packages/core/core-flows/src/cart/steps/update-line-items.ts
- https://github.com/medusajs/medusa/blob/v2.8.4/integration-tests/modules/__tests__/cart/store/cart.completion.ts
- https://github.com/medusajs/medusa/blob/v2.8.4/integration-tests/modules/__tests__/workflow-engine/workflow-engine.ts
- https://github.com/medusajs/medusa/pull/12646/files
- New workflow steps: Acquire and Release lock
- Acquire lock before cart completion
- https://restate.dev/blog/announcing-restate-ui/
- https://github.com/restatedev/restate
- https://github.com/restatedev/examples/tree/main/typescript
- https://github.com/meirwah/awesome-workflow-engines
- https://en.wikipedia.org/wiki/Workflow_engine
blog:
- How Restate works, Part 1, https://restate.dev/blog/every-system-is-a-log-avoiding-coordination-in-distributed-applications/
- How Restate works, Part 2, https://restate.dev/blog/building-a-modern-durable-execution-engine-from-first-principles/
channel: