Unique identifiers in Momentus Elite follow a format that will look similar to this: 1234-65-65-5678.The string of numbers is created by combining the following information:
-
Tenant ID + tenant node ID: This is the ID of the overall account (known as a database "tenant") plus the database "node" which it was created on. These numbers will never change.
If you've been using Elite for a long time, you may not have a tenant node ID. Your unique numbers will not have the "-65" in the yellow section. If you're curious whether your tenant has a node ID or not, just shoot us an email!
- Document node ID: This is the ID of the "node" (specific instance of the database) in use when the document (event, invoice, or event order) was created. Older events from before we implemented clustered databases in March 2019 will not have this node ID.
- Document ID: This is the ID of the document (referring to an event, invoice, or event order).
But why?
Momentus Elite is designed to run on clustered databases which allow for better performance and redundancy. Each "node" in the database cluster is a copy of the entire database. If a particular database server becomes inaccessible for any reason (local network failures, excessive traffic, or even physical failure at the data center) information can still be read from or written to a different node in the database cluster. When redundant databases are in use, additional identifiers are needed in case the same information is written to two different databases simultaneously, before they are synchronized.
For example, Bob creates an event (event 5678 in Elite) and is using the primary database server, node A, which is identified as 65. This event is created as 1234-65-65-5678. Sally creates an event at the exact same time, however, due to an issue on her network, she is routed to Node B (node 66) for faster performance. Because she creates an event at the exact same time as Bob, the two duplicate databases have not yet been synchronized. Her event is created as 1234-65-66-5678,ensuring that the unique ID numbers for the two events are truly unique.
Is this why unique IDs aren't consecutive?
Yes! The underlying database structure of Elite does not support consecutively sequential IDs. Rather than assigning the next number in sequence, an ID is assigned from a group of numbers which are next in sequence.
If consecutive sequential IDs are critical for your workflow, please contact us to discuss a custom integration.
I see Accounts, Events, and Invoices with the same unique ID. Is that correct?
Yes! The same ID number can be used for different object types like Accounts, Contacts, Events, and Invoices but they will be unique for that particular object (for example, there will never be two Accounts with the same ID).
One thing to note is that we do allow you to override the Event ID with a custom value and we do not enforce uniqueness there. The original event ID (which is always unique) still exists in the data and can be searched or reported on, while the user-entered value might be desirable to show in contracts or certain reports.
Why do some events have a different number format?
You may notice that some events or accounts do not follow the number format shown above. There are several possible scenarios where this may be the case:
- Older Tenants/Accounts and Events: If you started using Elite before we implemented clustered databases, your tenant ID may not include a node ID and your older events will not have the document node ID.
- Data Conversions / Migrations: Events imported from a different system, such as EB Classic, EBMS, or Fastbook, will inherit the ID number that was used in the previous system.
- Custom ID numbers: Elite offers the ability to override Event ID and Account ID numbers, which is sometimes needed for custom contract numbering or for interfacing with accounting systems. Any events where that number has been overridden may not follow the new format.