Creating Custom Search and Navigation Cartridge Handlers

The #1 recommended practice is for customers to use the search and navigation cartridge handlers that are provided with Oracle Commerce out of the box. Customers (especially those new to developing with Endeca) should not endeavor to create their own search and navigation cartridge handlers. This invites both performance issues and future upgrade issues into a customer’s solution.

The search and navigation cartridge handlers that are provided in the Oracle Commerce product are carefully designed and constructed so that they query the MDEX engine as efficiently as possible (with all queries going through a request broker to minimize the round trips). Further, these cartridge handlers are run through a variety of automated performance tests every night. These tests are built from customer exemplars (data sets, query logs, and page compositions from real customers), and we have very strict performance goals for these performance tests. Our full page response time goals (as recorded at our load generator, which would simulate a client browser) are <250ms at the 90th percentile and <200ms at the 99th percentile. This is at a sustained peak load. I just looked at our dashboard for the last 10 days, and the recorded latencies are consistently <80ms at 90th percentile and <120ms at 99th percentile! As noted above, these are full page loads with dozens of cartridges per page, and the times include network time and JSP rendering time. It also includes all of the requisite MDEX queries. On average these pages require 4.5 queries per page (1 rule query + 3.5 search and navigation queries). Judging by the looks of our exemplar pages, a naive implementation of some custom search and navigation cartridge handlers would require 22+ MDEX queries per page (sound familiar?).

Bottom line: Customers should use the search and navigation cartridge handlers that we provide out of the box. If these don’t have the requisite functionality, let us know, so that we can enhance them as necessary. And, if you really need to fill a product functionality gap *NOW*, you should consult with someone who has Endeca experience.

Add Your Comment