Skip to content

Implementation Specifications

Pending Approval

These specifications are pending final approval and may change

The Dispatcher application will be made of 2 services:

ComponentDescription
Web ServiceEndpoints to receive webhook requests from vendors
and enqueue them for processing
Request ProcessorHandles the processing of enqueued webhook requests from vendors

Additionally, the Dispatcher application will utilize the following externally managed services

ServiceUseses
Redis*Cache
RabbitMQ*Queue
MySQL*/ MariaDB*Relational Database
PHPMyAdmin**Relational Database Management

CAUTION

* This service should only be accessible to applications within the "cluster" and specifically whitelisted IP addresses of the relevant system administrators.

CAUTION

** This service should only be accessible to specifically whitelisted IP addresses of the relevant system administrators.

Tenant Configuration Management

Tenant configurations will be stored within the relational database, and will be managed via external tools such as the PHPMyAdmin service, MySQL Workbench or Navicat for MySQL.

Note

In a future release, a dedicated interface for configuration management will be created in order to limit the requirement of making direct database edits

Scaling Path

Dispatcher's services are designed to be horizontally scaled.

ServiceDetails
Web ServiceServerless functions running on platforms like AWS Lambda and DigitalOcean Functions automatically horizontally scale and do not require any additional configuration
Request ProcessorWill automatically horizontally scale based on queue back-pressure and application resource utilization

Release Cycle

Dispatcher's service will have individual code bases. Minor and Patch version releases will be released independantly on a per-requirement basis. Major version releases will have syncronized releases to ensure that no issues occur during the migration.

Breakdown of Work

The estimate for the effort needed is 136.5 hours blocking hours + 24 non-blocking hours, broken down as follows:

TaskEst. HoursNotes
Web Service23See web service breakdown of work
Request Processor96See request processor breakdown of work
Infrastructure17.5See infrastructure breakdown of work

Blocking vs Non-Blocking Hours

Blocking Hours refers to work which must be completed before the product can be launched Non-Blocking Hours refers to work which can or should be completed after the product is launched