A bank has asked you to develop a new backend system to handle their scheduled payments.
This is primarily an OLTP workload with daily batch processes. Items in the table(s) represent payments that are scheduled between accounts. As items are inserted, they are scheduled on a specific date to have the payment processed. Each day, items are regularly sent to a transactional system for processing, at which time their status changes to PENDING
. Upon a successful transaction, an item’s status is set to PROCESSED
and updated with a new transaction ID.
SCHEDULED
, PENDING
or PROCESSED
), DataBlob (total item size is <= 8 KB)SCHEDULED
state, mostly in the hours of 6 AM to 6 PM.SCHEDULED
payments. This service sends the SCHEDULED
items to the transaction service. Upon sending the items to the transaction service, the payment status is changed to PENDING
.PROCESSED
and a new transaction ID is added to the item.SCHEDULED
or PENDING
.Your Challenge: Develop a NoSQL data model for the bank that fulfills the scheduled payments requirements.
Bonus challenge: At the end of each day, all of the items that were PROCESSED
need to be moved to a long term table (due to compliance the data needs to be in a separate table). Design a second data model that fulfills that same access requirements as above, and add another requirement to return a specific item associated with a transaction ID.