Object Flows: Workflow-item scheduling, routing, assignment and execution

Assigner assigns a mechanism (user or bot) to work on a workflow-item available at a workflow-station. Performer/Executor completes the bot tasks. Scheduler creates a schedule for completed workflow-item. The schedule consists of which workflow-station the workflow-item should go to next and at what time. Router creates workflow-item processing tasks at workflow-stations per the schedules.  

Object Flows: Loading and processing of workflow items

Any resource with a status of not-available:{stateID} is picked up by the workflow engine loader and added into the workflow as a workflow-item. The loader is composed of two parts - producer and consumer. The loader-producer updates the status of resource to loading-in-process:{stateID} and puts the resource identifier in kafka. Loader-consumers are running on all … Continue reading Object Flows: Loading and processing of workflow items

Cassandra node vs partition: A simple explanation

As explained in How does Cassandra store data? – A simple explanation Cassandra uses partitioning key (the first part of primary key) to store a record into a partition on a node. Prior to version 1.2, one server = one node. That is each machine was assigned to a range of values, so that the entire cluster covered … Continue reading Cassandra node vs partition: A simple explanation

Migrating SQL applications to Cassandra – Pattern #4

Pattern #4: Get rid of all OR operators from sql where clauses. For example, consider an SQL requirement to authenticate user by comparing the string entered by the user with either username or email or phone: select u1.* from user u1 where (u1.username = ?1 or u1.email = ?1 or u1.phone = ?1) and u1.password = … Continue reading Migrating SQL applications to Cassandra – Pattern #4