Previous entries in Order Search Service blog series provided implementation approaches using Events and Change Data Capture (CDC) techniques. This blog highlights certain pros and cons of using events v/s CDC with respect to order search service implementation in IBM Order Management (OM).
1. No code changes are needed in the OM application to track changes in data.
2. Minimal impact on OM database; transaction logging must be enabled to track transactions.
3. Transaction log can show a complete replay of updates to the data.
4. Data tables can be enabled/disabled for transaction log, thereby allows to control the data footprint for lookup and search.
1. Contents of transaction logs are proprietary to the database management system; a CDC tool, for example, IBM InfoSphere CDC, Golden Gate etc. is needed to interpret them.
2. Dealing with changes in data definition are difficult for the consumer and therefore customization and product upgrades need revisit.
3. Creation of order data in a format that is needed for search and lookup from the output of CDC is complex and need a staging area for data processing.
4. Reprocessing of a record via transaction logs is not straightforward.
5. Increased solution complexity; additional tools and technologies are added.
6. Tightly coupled to database; with modularization of OM application, it may be difficult to apply this process to different databases.
1. Although this method needs programming the application to track transactions, this provides an accurate picture of data that is needed for the order search and lookup.
2. Many events are pre-defined in IBM Order Management and need configuration changes to enable them.
3. Pre-established data integration pattern as IBM Order Management uses an event-based data integration solution with other cloud solutions like IBM Watson Order Optimizer and IBM Watson Order Insights.
4. Reprocessing of an event is easier because each event is tracked and stored.
5. Solution complexity is low and hardware footprint is small.
6. Easily upgradeable with product upgrade.
7. Changes in data definition does not affect this approach because all the data is present in the order object.
1. Application extension / customization / configuration may be needed.
2. Increasing the data footprint needs a new application release.
3. Event processing consumes resources from the application; although this can be optimized via asynchronous processing and combination of mirror database to some extent.
To summarize, it is difficult to say which approach is better. Software designers should consider the pros and cons of both the approaches with respect to their existing solution boundaries and technical environment prior to selecting one of them.