Skip to content

Module: Rules engine#4147

Merged
CTMBNara merged 100 commits into
masterfrom
ruleengine
Oct 6, 2025
Merged

Module: Rules engine#4147
CTMBNara merged 100 commits into
masterfrom
ruleengine

Conversation

@And1sS
Copy link
Copy Markdown
Collaborator

@And1sS And1sS commented Aug 19, 2025

🔧 Type of changes

  • new bid adapter
  • bid adapter update
  • new feature
  • new analytics adapter
  • new module
  • module update
  • bugfix
  • documentation
  • configuration
  • dependency update
  • tech debt (test coverage, refactorings, etc.)

✨ What's the context?

Context is described in public PRD: https://docs.google.com/document/d/1LcUkGfWL4aKFys0MRSNjKgo8NML2gS3VUtf1GQFKF_4/edit?tab=t.0

This is the first phase of the module, which includes all schema and result functions from prd, seat-non-bids, and analytics tags. For now, only account configuration is supported.

The implementation supports rule caching to reduce heavy-weight parsing. The following properties are available for cache configuration:
hooks.pb-rule-engine.rule-cache.expire-after-minutes - TTL for rules
hooks.pb-rule-engine.rule-cache.max-size - cache size

Since broken configs are not cached and must be parsed on each request, a single broken config can significantly degrade PBS performance. To mitigate this, exponential backoff has been implemented for parsing. The following properties are available for backoff configuration:
hooks.pb-rule-engine.rule-parsing.retry-initial-delay-millis - initial delay in milliseconds
hooks.pb-rule-engine.rule-parsing.retry-max-delay-millis - maximum delay in milliseconds
hooks.pb-rule-engine.rule-parsing.retry-exponential-factor - backoff factor
hooks.pb-rule-engine.rule-parsing.retry-exponential-jitter - jitter

🧪 Test plan

Unit tests and funcitonal tests.

🏎 Quality check

  • Are your changes following our code style guidelines?
  • Are there any breaking changes in your code?
  • Does your test coverage exceed 90%?
  • Are there any erroneous console logs, debuggers or leftover code in your changes?

# Conflicts:
#	extra/bundle/pom.xml
#	extra/modules/pom.xml
CTMBNara
CTMBNara previously approved these changes Sep 16, 2025
CTMBNara
CTMBNara previously approved these changes Oct 3, 2025
Co-authored-by: Alex Maltsev <and1sscsgo@gmail.com>
Co-authored-by: osulzhenko <osulzhenko@magnite.com>
@CTMBNara CTMBNara merged commit 8bc1647 into master Oct 6, 2025
9 checks passed
@CTMBNara CTMBNara deleted the ruleengine branch October 6, 2025 13:11
@osulzhenko osulzhenko linked an issue Nov 27, 2025 that may be closed by this pull request
riteshghodrao pushed a commit to riteshghodrao/prebid-server-java that referenced this pull request Apr 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Port PR from PBS-Go: Rules Engine Module: Phase 1

4 participants