View-Mongod Decommission Progress Update
Earlier in June we sent a notice for decommissioning view-mongod (link: https://tvlk.slack.com/files/T02T3CAFM/FME37DFDF?origin_team=T02T3CAFM). The decommission was aimed to be done at the end of Q3. However, as far as how things go, roughly more than half of the current usages were migrated. Many thanks to those who have migrated.
New Timeline
We decided to postpone the decommission to the 30th of November this year. Several reasons for postponing are:
- Requests from product teams since they were not able to complete the migration on time.
- Unexpected issues (e.g. long running query) during the migration process that is being fixed.
Why is this important?
You need to migrate out from this database because of the following reasons:
- It is a shared database used by multiple services from different tiers along with different usage patterns. An example is you would not want your issuance process to fail just because some other product tools is running a long query.
- Information integrity issue between data stored in AgentBooking and AgentBookingView. Because both data are stored in different infrastructure (AgentBooking in fb-mongod, AgentBookingView in view-mongod) information inconsistency can occur if anomalies occur because the data consistency in view-mongod are manually being forced (eventually consistent). Thus, this could cause problems in transactional activities such as issuance and operation related tools where state found in AgentBooking might differ with AgentBookingView.
- Abstraction issue where a single view data structure could scale well if we are trying to store multiple product specific context in a single data structure.
- You are making your life difficult when migrating to multi-account where you want to add a new connectivity to a legacy database.
- Prior to the planned decommission date (30th November), we will intermittently disable calls to view-mongod at the beginning of November.
How can I migrate?
You will need to remove AgentBookingViewService usage or dependency from your service(s). In order to do so you can find decoupling guide in AgentBookingViewService’s java docs.
As for reference here is a spreadsheet (see “Usage v2” sheet) containing list of usages that we have identified along its proposed solution although some solution might differ during the actual implementation. Kindly check whether your team are impacted or not.
Should you have any questions, please feel free to reach @tripdata-eng in our slack channel #user-eng-channel.