Business Process Management is a concept that has been there since 80s and 90s with workflows, ERP, CRM systems but it got redefined when Model Driven Development was the most sought after way to code after 2000 and with the introduction of tools in the market that was able to visualize the process.
Goals of BPM include process as a discipline, improve the current process, identify and remove bottleneck in the process using monitoring and simulation of various scenarios. In the first phase the BPM tools were based on middleware that was not only expensive but also designed to be a monolithic where the front end was tied into the process implementation, some examples include Feugo BPM. The second phase of BPM tools introduced started implementing the standards prescribed by OMG as BPMN 1.2 around 2009 and extended to use BPMN 2.0 around 2011 along with the SOA suite where the BPM tooling were tied to their SOA offering, some examples include IBM BPM, Oracle Fusion BPM, Pega. Then there was a third phase of BPM tools where the BPM tool became light weight and were offered as a service and can be enabled using Cloud. As the intake of Cloud increased many cloud providers introduced workflows within their product offering and some example include AWS SWF (Simple Workflow Framework), Azure Logic Apps and many more light weight offering such as JBPM (Redhat), Appian, Camunda, AWS Step Functions and so on.
Though there are technologies such as BPEL that intend to do just Orchestration between services did not succeed, BPM continues to offer value for its customers with its role based process flows, sub processes, human activity used for approval or reject, timer and asynchronous activities all built into the standards and the technology. BPM also tried to bridge the gap between business process as visualized by the business teams and technical implementation of the process. Many tools did not succeed mainly because they were trying to create one product do both front end functionality to deliver a quick turnaround, business process engine that needed a application server with the use of database to store the states between the processes. BPM also became complex with long running processes and versioning around it where new functionalities were not available for previous process versions that became a big bottleneck.
At this present time, AWS Step Functions is a serverless answer to workflow mainly as a state machine that is used to visualize states, data flow and handle failures across the process. Currently this product lacks any human interaction or versioning and lacks the depth of integration available in the BPM products. AWS is continuing to invest and grow step functions and so more functionality will be added in the future. This page compares some of the BPM functionality with SWF and Step Functions as it stands now.