Severity: 8192
Message: Creation of dynamic property CI_URI::$config is deprecated
Filename: core/URI.php
Line Number: 101
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Router::$uri is deprecated
Filename: core/Router.php
Line Number: 127
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$benchmark is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$hooks is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$config is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$log is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$utf8 is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$uri is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$exceptions is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$router is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$output is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$security is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$input is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$lang is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$load is deprecated
Filename: core/Controller.php
Line Number: 78
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 132
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 290
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 164
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 233
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 313
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 354
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 282
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 289
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 304
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 314
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 315
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 316
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 317
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 375
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: drivers/Session_files_driver.php
Line Number: 108
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 110
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: session_start(): Session cannot be started after headers have already been sent
Filename: Session/Session.php
Line Number: 143
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$session is deprecated
Filename: core/Loader.php
Line Number: 1283
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$benchmark is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$hooks is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$config is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$log is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$utf8 is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$uri is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$exceptions is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$router is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$output is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$security is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$input is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$lang is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$load is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$session is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
A grocery category manager at a mid-sized brand walks into Monday with a simple-sounding question: how is my private-label detergent priced against the top three competitors across our five biggest retailers this week? The answer is sitting somewhere inside a data lake. The path that question takes through the lake: how raw retail data is stored, processed, and served back as a usable answer, is the difference between a five-minute decision and a five-day investigation. Most retail data lakes today are built for the latter.
This is the first of three posts on what a competitive intelligence platform should look like when it is built from the data layer up. It is written for technology and business leaders inside CPG and retail organizations who keep wondering why their analytics keeps disappointing them, and what it should actually look like underneath.
Most retail data platforms in the field today carry the genetic markers of how big-data infrastructure was built a decade ago. Crawled product data, pricing feeds, marketplace assortment files, and content payloads land as row-oriented files, typically compressed JSON, partitioned by source and date. Reports are written as Python scripts that combine these files into a single dataset and process them line by line. Compute is single-engine, almost always whatever happens to be installed first. Filters by source, vertical, or date still require reading entire files end-to-end. Every meaningful change in business logic is a code change, a review, and a deployment.
That approach was reasonable when retail data was small. It isn’t anymore.
According to a 2025 report from Drexel University’s LeBow College of Business, 64% of organizations cite data quality as their top data integrity challenge, 45% list inconsistent definitions and formats among their top concerns, and 67% don’t fully trust the data they use for decision-making.
Read carefully, those numbers aren’t really about analytics. They are about plumbing. Most retail organizations don’t have a missing-model problem. They have a the-data-underneath-the-model-can’t-be-trusted problem. And that problem has its roots in the data lake.
When you are running a few dozen reports against a few terabytes of crawled data, line-by-line Python on JSON files works. When you are running thousands of reports against hundreds of millions of data points refreshed daily, three failure modes show up in sequence.
A retail-grade data lake built for the next decade has four properties that the traditional shape does not.
The picture below presents a bird’s eye view. The four lanes: ingestion, tiered storage, processing, and serving are deliberately decoupled, so each can be optimized for its own cost, SLA, and quality profile.

A brand director reading this might fairly ask why an engineering blueprint should appear on her radar. The answer is that the questions retail leaders ask: “are we losing share on private label this week,” “is anyone selling our hero SKU below MAP,” “are my new launches outperforming last quarter’s” all bottom out in the data lake. When the lake is fast and trustworthy, those questions get answered in the time it takes to grab coffee. When it isn’t, they become quarterly projects.
The retailers and brands that will pull ahead over the next few years won’t be the ones with the most AI tools. They will be the ones whose data foundations are reliable enough that the AI tools they buy actually work. The blueprint matters because everything else sits on top of it.
This is first in a series articles – here we talk about the foundation layer. Stay tuned for our next post, where we’ll get into what sits on top of it: how matched, normalized, and enriched data turns raw crawl output into competitive intelligence stakeholders can actually use. If your team is already feeling the weight of a data lake that wasn’t built for retail scale, reach out to us to learn more.
Thank you for Subscribing - Team DataWeave
For accounts configured with Google ID, use Google login on top. For accounts using SSO Services, use the button marked "Single Sign-on".