Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Keep in sync with version in frank-runner.properties. Detailed instructions can be found in CONTRIBUTING.md.
# Check whether java-orig files have changed in F!F and update custom code (java and java-orig files) accordingly
ARG FF_VERSION=9.1.1-20250513.130355
ARG FF_VERSION=9.4.0-20251218.042336
FROM docker.io/frankframework/frankframework:${FF_VERSION} AS ff-base

# Copy dependencies
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,11 @@ Will result in:
}
```

### Routing:<br/>
Zaakbrug supports multiple ways of routing messages:
1. Default behavior: Zaakbrug behaves normally and communicates with ZGW API's
2. Orchestration: Zaakbrug communicates with ZGW API's as normal, but also sends certain messages to a secondary system, like Suite Sociaal Domein. Messages are first processed like normal and sent to ZGW API's, and when that results in success, the message is also sent to the secondary system. In case of error, the message will not be orchestrated, and the error will be returned. In all cases, the response from ZGW API's is returned and the response from the secondary system is ignored.
3. Migration: Similar to Orchestration, with the difference that messages are still sent to the secondary system regardless of the result of the normal processing and sending to ZGW API's. This is useful if you want 2 systems to run parallel during a migration project to see the differences between them.

## ZaakBrug Development
Refer to `CONTRIBUTING.md`.
83 changes: 83 additions & 0 deletions docusaurus/docs/zaakbrug/configuring-zaakbrug/routing-profiles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
sidebar_position: 100
---

# Routing Profiles

Zaakbrug supports multiple ways of routing messages:
1. Default behavior: Zaakbrug behaves normally and communicates with ZGW API's
2. Orchestration: Zaakbrug communicates with ZGW API's as normal, but also sends certain messages to a secondary system, like Suite Sociaal Domein. Messages are first processed like normal and sent to ZGW API's, and when that results in success, the message is also sent to the secondary system. In case of error, the message will not be orchestrated, and the error will be returned. In all cases, the response from ZGW API's is returned and the response from the secondary system is ignored.
3. Migration: Similar to Orchestration, with the difference that messages are still sent to the secondary system regardless of the result of the normal processing and sending to ZGW API's. This is useful if you want 2 systems to run parallel during a migration project to see the differences between them.

Configuring which messages are processed in which way is done in RoutingProfiles and RoutingProfileDefaults.

- `RoutingProfileDefaults` describes the default way of routing messages per SOAPAction.
- `RoutingProfiles` gives the option to configure the behavior for each SOAPAction per zaaktype

Configuration fields:

- route: this describes the route for this message type. `translate` is the normal way of translating and sending the message to ZGW API's. `replicate` is used for orchestration and migration cases. `proxy` can be used if you want the message to be sent to the secondary system only.<br/>
Options: `[translate|replicate|proxy].[beantwoord-vraag|ontvang-asynchroon|vrije-berichten]`
- stopOnError: this is applicable only if the first part of `route` is `replicate`. This describes whether the message should be sent to the secondary system in case of error during normal translating and sending message to ZGW API's.<br/>
Options: `[true|false]`

When using Kubernetes this can all be configured in values.yaml under the zaakbrug service, for other deployment options such as Tomcat-as-a-service and Docker, it can be configured in /opt/frank/configurations/Translate/profiles.json in JSON format.<br/>
The configuration can look something like this:

```yaml
routing:
profiles:
- zaakTypeIdentificatie: "B9999"
geefZaakdocumentLezen_Lv01:
route: "replicate.beantwoord-vraag"
stopOnError: true
- zaakTypeIdentificatie: "B1026"
creeerZaak_Lk01:
route: "proxy.ontvang-asynchroon"
stopOnError: true
profileDefaults:
geefZaakdocumentLezen_Lv01:
route: translate.beantwoord-vraag
stopOnError: true
geefZaakstatus_Lv01:
route: translate.beantwoord-vraag
stopOnError: true
geefZaakdetails_Lv01:
route: translate.beantwoord-vraag
stopOnError: true
geefLijstZaakdocumenten_Lv01:
route: translate.beantwoord-vraag
stopOnError: true
voegZaakdocumentToe_Lk01:
route: translate.ontvang-asynchroon
stopOnError: true
maakZaakdocument_Lk01:
route: translate.ontvang-asynchroon
stopOnError: true
actualiseerZaakstatus_Lk01:
route: translate.ontvang-asynchroon
stopOnError: true
creeerZaak_Lk01:
route: replicate.ontvang-asynchroon
stopOnError: true
updateZaak_Lk01:
route: translate.ontvang-asynchroon
stopOnError: true
genereerDocumentIdentificatie_Di02:
route: translate.vrije-berichten
stopOnError: true
genereerZaakIdentificatie_Di02:
route: translate.vrije-berichten
stopOnError: true
geefZaakdocumentbewerken_Di02:
route: translate.vrije-berichten
stopOnError: true
updateZaakdocument_Di02:
route: translate.vrije-berichten
stopOnError: true
cancelCheckout_Di02:
route: translate.vrije-berichten
stopOnError: true
```

In this case, 'creeerZaak' messages will be sent to `replicate` by default. In case of `zaakTypeIdentificatie`:`B9999`, `geefZaakdocumentLezen` messages will be sent to `replicate`, and in case of `zaakTypeIdentificatie`:`B1026`, `creeerZaak` messages will be sent to `proxy`. In all cases where messages are sent to `replicate`, `stopOnError` is `true`, so this is an orchestration scenario.
2 changes: 1 addition & 1 deletion frank-runner.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
classloader.type=ScanningDirectoryClassLoader

# Keep in sync with version in Dockerfile. Detailed instructions can be found in CONTRIBUTING.md.
ff.version=9.1.1-20250513.130355
ff.version=9.4.0-20251218.042336
Loading
Loading