Understanding Auto-Numbering in a Multi-Transaction System
Introduction
Auto-numbering is a common requirement in business applications, ensuring each record (such as an invoice, order, or customer ID) gets a unique number. However, when multiple users or processes try to generate numbers at the same time, conflicts can arise. This blog explains how a system ensures safe and sequential auto-numbering when multiple transactions happen simultaneously.

What Does the Diagram Represent?
The diagram below illustrates how two different transactions (Event Pipeline 1 & Event Pipeline 2) interact with the Auto-Number Table to generate unique numbers while maintaining data consistency.
Each process follows a structured approach:
- Initiate Transaction – A request is made to create a new account with an auto-number.
- Lock the Auto-Number Table – The system temporarily prevents other processes from modifying the number.
- Read the Latest Number – The system retrieves the most recent number (e.g., 7).
- Increment the Number – It updates the table with a new value (e.g., 8).
- Assign the Number to the Record – The new number is saved to the account being created.
- Commit the Transaction – The process is completed, and the lock is released.
Key Concepts Explained
πΉ Event Pipeline 1 & 2
- These represent two separate processes that try to generate an auto-number at the same time.
- Without a proper locking mechanism, both might pick the same number, leading to duplicates.
πΉ DB Transaction (DB Txn)
- This represents the database operations ensuring that numbers are assigned sequentially.
πΉ Auto-Number Table
- The table that stores the last assigned number and ensures no two transactions generate the same number.
πΉ Write Lock
- The system prevents multiple processes from modifying the number simultaneously, ensuring uniqueness.
How Does It Handle Simultaneous Transactions?
✔ Locking Mechanism: Before reading or updating the number, the system locks the auto-number table to avoid duplicate assignments.
✔ Sequential Numbering: Even if multiple users request a number at the same time, the system ensures they get unique numbers (e.g., INV-1001, INV-1002).
✔ Transaction Safety: Each transaction follows a structured read-update-commit process, avoiding inconsistencies.
Conclusion
This system ensures data integrity, avoids duplication, and maintains an ordered sequence of auto-numbers even when multiple transactions happen simultaneously. Businesses using such a mechanism can be confident that their records remain unique and well-structured.
Comments
Post a Comment