Skip to content

Conversation

@And1sS
Copy link
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?

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
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

5 participants