Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In the current implementation, ACM supports multi-participant with same supported element Type but different participantId, so they need different properties file.

...

Participant replicas can be a kubernetes StatefulSets that consume two different properties file with unique UUIDs consumer groups and unique consumer groupsUUIDs/replica (participants with same UUIDs have different replica number).

The StatefulSet uses the SPRING_CONFIG_NAME environment variable pointing to the spring application properties file unique to each of the participant replica.

Each of the properties file with the names pod-0.yaml, pod-1.yaml is mounted to the volumes. And the SPRING_CONFIG_NAME variable can be set to /path/to/$HOSTNAME.yaml to use the corresponding

properties file. 

By this approach the participant can have multiple replicas with different UUIDs and kafka consumer groups to work with a shared data.

env:
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: metadata.name

- name: SPRING_CONFIG_NAME
value: /path/to/${HOSTNAME}.yaml

For example considering the http participant replica, ${HOSTNAME} will be "policy-http-ppnt-0" and "policy-http-ppnt-1" and their
corresponding properties files with the names "http-ppnt-0.yaml" and "http-ppnt-1.yaml" is volume mounted.

Note: In a scenario of two participants in replicas (we are calling "policy-http-ppnt-0" and "policy-http-ppnt-1"), ACM-Runtime will assignee randomly as before any composition definition in prime time to specific participant based of supported element definition type. So we could have a scenario where a composition definition "composition 1.0.0" is assigned to policy-http-ppnt-0 and the instance too; the new composition "composition 1.0.1" is assigned to policy-http-ppnt-1. In that scenario the migration of an instance from "composition 1.0.0" to "composition 1.0.1" wouldn't work, because policy-http-ppnt-0 do not have "composition 1.0.1" assigned.

Issues:

...

All participant will receive the same messages and store same data, so all participants are synchronized with ACM-R. Into all messages from ACM-R to participants will be present the replica number to indicate what participant will do the job (like prime or deploy). 

Solution 3: Replicas and Database support - no cache

...

Solution 4: Distributed Cache

Issues:

  • Not persistent - if the application that handles cache server restarts - data is lost.
  • Approval issues - with Redis, Etcd, Search Engine.

...