Open BPM

Follow one work item from request to completion

A work item should retain its purpose, responsible role, deadline and history as people offer, claim, release, complete or escalate it.

How it works

Keep the work item's identity through every change

Each accepted action changes responsibility or state without losing the original request, actor, time and result.

  1. Request

    A service asks for a defined result and supplies the business reference, responsible role and deadline.

  2. Create

    Open BPM accepts or refuses the request and avoids creating duplicate work when the same request is retried.

  3. Offer

    The new work item appears in a queue visible to people with the required role.

  4. Claim or release

    An eligible person accepts responsibility or returns the item so another person can act.

  5. Complete or escalate

    The participant records the result, or a defined condition changes who must respond.

  6. Close and retain history

    The component retains the request, accepted changes, actors, times, result and recovery actions.

Read the connections
  • RequestCreate: authorised creation command.
  • CreateOffer: accepted work becomes available.
  • OfferClaim or release: an eligible participant takes responsibility.
  • Claim or releaseComplete or escalate: work changes through authorised actions.
  • Complete or escalateClose and retain history: result and recovery remain attributable.
This lifecycle is proposed. The first implementation must test refusal, repeated delivery, deadline expiry, rule failure and restart recovery as well as normal completion.

Create work from an authorised request

The rebooking journey begins when a service asks Open BPM to create work. The request identifies the business record, required result, responsible role, deadline and the person or system making the request.

The future component should accept or refuse the request explicitly. Retrying the same request must not create a second work item. This property is called idempotency: retrying the same request does not create another copy of its effect.

Offer work before somebody owns it

Open BPM would offer the new item to a scheduling queue. A queue shows eligible people which work is available; it does not mean that one person has accepted responsibility.

When a scheduler claims the item, the component records who accepted it, when and under which role. The scheduler may release it if they cannot continue, so another eligible person can claim it.

Complete, refuse or escalate

When the scheduler completes the item, Open BPM should record the required result, such as the date on which a new appointment was offered. A business refusal is also a result and should not be misreported as a software failure.

If the deadline approaches or the work becomes blocked, an escalation changes who must respond or which action is required. The work history retains the original request, every accepted change and any recovery action.

Keep domain records with their owner

Open BPM manages the state of the work. The appointment service remains responsible for the appointment record itself. Open BPM stores a stable reference and receives only the information needed to organise the work.

That separation lets the work component be replaced without turning it into the authoritative database for every service that uses it.

Related work

What other projects contribute

  • A domain component supplies references to the appointment or other business record.
  • An identity component supplies the actor, role and authority needed for each action.