Eric D. Schabell: Business optimisation architecture - Example vaccine scheduling

Thursday, March 4, 2021

Business optimisation architecture - Example vaccine scheduling

business optimisation
Part 4 - Example vaccine scheduling

In the previous article from this series we looked at an example architecture for retail planning optimisation.

It started with laying out the process of how we've approached the use case by researching successful customer portfolio solutions as the basis for a generic architecture.

The specific example of how retail organisations can optimise delivery planning, employee rostering, and optimise task assignments was laid out in the architecture diagram.

This article continues on with another specific example that focuses on how retail stores around the world are helping deliver vaccinations through their pharmacies. It walks you through an example optimisation scenario showing how to provide for customer vaccine scheduling.

Architecture review

As mentioned before, the architectural details covered here are base on real solutions using open source technologies. The example scenario presented here is a generic common architecture that was uncovered researching those solutions. It's our intent to provide guidance and not deep technical details.

This section covers the visual representations as presented, but it's expected that they'll be evolving based on future research. There are many ways to represent each element in this architecture, but we've chosen a format that we hope makes it easy to absorb. Feel free to post comments at the bottom of this post, or contact us directly with your feedback.

Now let's take a look at the details in this architecture and outline the solution.

planning business optimisation

Vaccine scheduling architecture

The example shown in the figure titled Schematic - Business optimisation (vaccine scheduling) outlines how this type of optimisation ties into your architecture. In this example, starting from the left we see a business owner and developer providing the input needed for the vaccine planning services. These inputs are constraints (both hard and soft), resource availability, and business goals to be achieved. 

It's interesting to take a short side trip into the reason that various constraints make putting together a schedule so demanding that special tooling is needed. In the case of vaccination scheduling there are things you need to think about such as:
  • planning runs need to complete in timely fashion, for example:
    • ~350k slots should produce a schedule within an hour
    • runs can be done several times a day
  • if anyone with a slot cancels, the planning needs to stop it's run and start again
    • achieve continuous planning
  • need rules to prevent games the system, for example:
    • can't request a slot, then cancel if not satisfied with your slot, thereby getting an earlier slot
    • ensure cancelled slots in schedule go to back of the line
  • account for vaccine types that can't be given to certain age groups
  • give priority to second vaccine slot planning over first vaccine slot
These are just some of the constraints and conditions that need to be met with regards to designing and executing a planning cycle. Something to think about, right?

While this might look like something that the business owner and developer are doing into the fully deployed solution, it's really using the previously covered cloud native development showcased in that architecture. For simplicity, we've included the planning and constraint development aspects here to help with an understanding that business owners are involved.

The vaccine planning services can then be triggered or viewed by external systems shown as planners that have been given access through the API management element to start, provide input, or retreive planning optimisation results. 

The integration microservices are making extensive use of the planning results to share a vaccine appointment with the user of the frontend application, shown here as a mobile application. Data access is shown at the bottom making use of vaccine center data, vaccine supply data, and customer data. Access for the vaccine planning services is arranged by the integration data microservices allowing for clean separation of integration points between critical demarcation lines of your architecture.

While the business owner and developer are working on the constraints and modeling of the needed vaccine planning services, at runtime the rest of the elements in this diagram are leveraging these optimisation planning services to achieve desired outcomes. 

The diagram might give the impression that this is a single in store pharmacy solution, but it can also be seen in the context of a centralised architecture in the retail organisation where the external status views are those of satellite stores or warehouses. The stores and warehouses are all looking to make use of the vaccine planning and optimising services for better pharmacy vaccine scheduling.

What's next

This was just a short overview of a vaccine scheduling architecture that provides you with a map to solve your own business optimisation challenges. 

An overview of this series on the business optimisation portfolio architecture can be found here:
  1. An introduction
  2. Common architectural elements
  3. Example planning optimisation
  4. Example vaccine scheduling
Catch up on any articles you missed by following one of the links above.

This completes the series and we hope you enjoyed this architecture for business optimisation.

(Article co-authored by Iain Boyle, Chief Architect Retail, Red Hat)