Black Box SMS Integrations

Tue May 07 2019

Tech Stack: PHP, Laravel, Mockery, Guzzle, mongo, docker

Description I got this project that had an implementation with a specific SMS provider. The code that used the SMS service was tightly coupled to the specific integration. That meant adding a new integration would be very hard and should make more providers added easily.

The Workflow:

  1. Decide on the contracts your code will have
  2. Change the usage of the old code with the new contracts
  3. Create the new provider library code
  4. Update the existing provider code
  5. create the adapter for each of them so they will fit our contract
  6. create a factory for getting an implementation for SMS provider