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.
PROCESSED), DataBlob (total item size is <= 8 KB)
SCHEDULEDstate, mostly in the hours of 6 AM to 6 PM.
SCHEDULEDpayments. This service sends the
SCHEDULEDitems to the transaction service. Upon sending the items to the transaction service, the payment status is changed to
PROCESSEDand a new transaction ID is added to the item.
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.