Decide what requires approval
Evaluate change attributes with Boiler Rule Engine. Amount, risk or environment can determine automatic approval, rejection or review. Missing or invalid policy evidence blocks the decision instead of granting permission.
- boiler-approval-engine
- boiler-rule
The right people, the right quorum
Require named review responsibilities alongside a fixed number, majority or all eligible reviewers. Bind decisions to verified identities and the exact tenant, product and environment.
- Approver selectors
- Mandatory slots
- Quorum
Approve an exact version
Freeze the policy snapshot and change reference with each request revision. A content digest ties the review to the proposed change. Later edits cannot silently inherit an earlier approval.
- Immutable snapshot
- Revision
- SHA-256
From inbox to a recorded decision
Find requests awaiting your review, inspect detail and timeline, then approve or reject within your authority. Withdrawal and policy-derived deadlines close obsolete requests; decisions at or after expiry are refused.
- Review inbox
- Timeline
- Expiry worker
Approved is not yet applied
After approval, dispatch a bounded apply command to the connected application. Match its result to the exact request, revision and execution token. Show successful application, failure and uncertain outcome as distinct states.
- Apply command
- Execution receipt
- Reconciliation
Recover without losing the audit trail
Persist decisions, work and outgoing events together. Coordinate workers with leases, use bounded retries and reconcile uncertain results. Operators can inspect waiting, failed and parked work and replay authorised events with an audit record.
- PostgreSQL
- Transactional outbox
- Lease coordination
Manage policy as a controlled change
Author and validate a complete policy draft, seal an immutable version and publish against the expected current revision. Separate administration, review and application permissions instead of allowing clients to declare their own authority.
- Policy authoring
- Validation
- Seal & publish
Integrate at the point of change
Use Java contracts or authenticated HTTP consumers to submit changes and return execution evidence. Communication-policy and Informer template/provider changes illustrate concrete integration points. RabbitMQ and Kafka adapters publish events; the receiving application still owns its business transaction.
- Consumer HTTP
- Spring Boot starter
- RabbitMQ / Kafka
An approval workspace for each role
Use dedicated screens for the review inbox, request lookup, policy catalogue, draft editing, release and audit. Consumer administration and operational views show integration bindings and capacity. Access follows the signed-in actor’s capabilities.
- Approval console
- Policy workspace
- Consumer operations