December 7, 2023 Technical Committee Meeting Note

Attendees

@PSRAMKUMAR @Trev Harmon @Ain Aaviksoo @Nico Lueck @David Higgins @Mauree, Venkatesen @Wes Brown @Martin Karner @Farai Mutero

Agenda

Presenter

Duration

Discussion

Agenda

Presenter

Duration

Discussion

Review pending agenda items

 

 

Architecture team recommendation on authentication and authorisation

 

Status update

Leads

20 minutes

Celebration - The 23Q4 publication is out https://govstack.gitbook.io/specification/v/23q4/

 

Community Management

@Nico Lueck

5 min

@Martha Mundas will take on communication and community building again. Community Growth team will be reactivated, if possible.

 

TC meeting cadence - leave as weekly or change to bi-weekly?

@PSRAMKUMAR

10 minutes

 

  1. Continue with the current weekly meeting schedule.

 

BB Scheduler deep dive

@PSRAMKUMAR

20 minutes

Ain - What is the difference between Scheduler and Workflow BBs?

 

Ramkumar. - The assumption is that Scheduler BB is purely time based triggers. It does not evaluate logical decisions from transitioning from one to another step. The workflow building block will do a lot of logical calculations, but it could just outsource the time critical triggers to the scheduler so that the workflow gets initiated triggered at a particular point of time by the scheduler.

The workflow can stack series of workflows and doesn't have to worry about when this work was to be triggered exactly. The partitioning helps to remove and put everything that is time critical in the scheduler and more complex business logic based logic based decisions in the workflow engine.

 

Trev - A scheduler is about the allocation of resources and a workflow is about the sequencing of events in time. From the presentation, the Scheduler might be expanding into some of the other areas that might be covered by other building blocks like alerts. Are we sure that we have the scope specifically around scheduling of allocation of resources? Or are we trying to spread out because there is pressure to have those added into the building block in order to be able to show a functioning system?

 

Ramkumar - The Scheduler restrains itself to be able to trigger the Messaging Building Block to send a message at a given time to many people or systems, but Messaging Building Block is not the only channel through which this trigger can activate a notification. It can go through pubsub of the IM for example, it can use a direct notification on a web hook which Messaging Building Nlock does not do, but there are alternate channels.

Messaging Building Block by itself is not deciding when to send a message. Something else has to decide for it because messaging Building block can act like it is abstracting away the heterogeneity of how to send it on various different types of messaging channel providers.

The scheduler is basically looking at when that has to be triggered, when it is triggered, what message has to be given out to a number of people who are participants of an event. The scope of the event as to who are all the participants of this event, would have to be triggered at a given point of time, so the time based synchronization happening between events is the information that the scheduler allows to be planned, tracked and triggered.

The time critical aspect of how to define this event and how to tag it with various alerts and the recipients of that alerts is the information that is critical to the scheduler. It doesn't either worry about the logical parts, nor does it worry about how this message is actually sent.

 

Martin - Where in the current GovStack sandbox can the Scheduler can be triggered? Any services tied to other BBs, for example with workflow triggered?

 

Ramkumar - The registration aspect has been covered for the USCT, But when it comes to the execution, the actual scheduling of the delivery of benefits (the actual social cash transfer) to the individuals, then it could be a scheduled job. The actual payment job can be handled by the disbursement engine, but then the trigger could come from the Scheduler.

 

Ain - What is the responsibility of the Scheduler if any of those scheduled events doesn't take place?

 

Ramkumar - Scheduler has listening API which can come from the particular application as an intimation and the scheduler can tell whether this event took place and it can internally ticket that this event as there was no show.

If the acknowledgement configured the Scheduler such that if that acknowledgement did not come within a certain timeframe, then it can treat it as a no show. This is configurable and once it is a no show or even if an appointment needs to be cancelled, the Schedule internally looks at all the dependencies of which resources were allocated and send them notifications automatically, including the subscribers and the resources that this event has been cancelled.

 

Wes - There wasn't very many options of software that can satisfy the specification based on what is in the spec and how the spec is written. Is that still the case or are they there now?

 

Ramkumar - The challenge is that there is no independent scheduler application. It is found as part of some other application usually.

 

Trev - Is it possible to set those products up to just have the Scheduler piece in there? Or do you have to start doubling up what might be other parts from other building blocks into those systems just get them to work in order to be able to do the scheduling?

 

Ramkumar - We have considered that the Scheduler Building Block can be used as an embedded component in any target building block If required, it may not always be a centralised scheduler, but there are several events that are happening across building blocks which also may require centralised orchestration of time based triggers. However, it doesn't restrict the building block to be embedded in some specific thing.

The same APIs can be used without using the IM, the building block can use the same APIs internally.