Skip to content

Instantly share code, notes, and snippets.

@scuddalo
Last active April 11, 2017 18:38
Show Gist options
  • Save scuddalo/fca203531920af6a7e648c7127be9965 to your computer and use it in GitHub Desktop.
Save scuddalo/fca203531920af6a7e648c7127be9965 to your computer and use it in GitHub Desktop.

Sprint 1: ["Boot up" sprint]

incoming-api (4/10-4/21) ["Groups and Subscribers" API]:

  • create a new maven module
  • establish a DTO structure to represent the group and subscriber
  • figure out services that we need to consume to fetch that data
  • figure out how to wire up jackson
  • write the GET services for group and subscriber
  • write the POST/PUT services for group and subscriber
    • figure out whats allowed to be modified and whats not allowed.
  • write unit tests for all these new services and controllers

outgoing-worker[Worker infrastructure] :

  • establish a new maven module
  • establish code infrastructure to run a worker that can listen to a message and invoke a mock logic
  • implement a way to trigger retries and report errors
  • figure out how to handle multiple types of payloads
    • routing
    • fault tolerance
    • error handline, etc.

api-gateway:

  • Research how we can use Apigee to work with our

Sprint 2(4/21 - 5/5): [Partner#1 onboarding/"Groups and Subscribers" wrap up]

incoming-api[Finish "Groups and Subscribers" API]:

  • Revise the DTO model per feedback
  • research on standard way to respponse to errors, successes, creation vs fetches etc.
  • implement error messages handling and standardize statuses
  • more tests

outgoing-worker: [Partner # 1 on boarding]

  • Identify a partner
  • Figure out how their APIs map to EB's model
  • establish a payload structure to publish for this domain
    • this structure will be close to EB's model
  • change EB's existing services to publish the payload to the queue
  • Write some logic to direct the payload to the right worker based on the partnerID in the payload
  • Write one worker per integration partner to transform the recieved payload and make a call to the partners API

api-gateway: [APIs and sample clients for "groups and subscribers"]

  • setup Apigee endpoints for groups and subscribers
    • figure out security, monitoring and throtling
  • start writing documentation for the endpoints
  • develop a sample client project to consume these endpoints

Sprint 3 (5/5 - 5/19): [Partner #2 onboarding/"plans and carriers" wrap up]

incoming-api:

  • Establish the DTO model for plans and carriers
  • figure out services we need to consume to fetch that data
  • establish GET services for plans and carriers
  • unit tests for all the new controllers

outgoing-worker: [Partner # 2 onboarding]

  • Research the APIs provided by partner # 2
  • model a payload structure to be publshed for this domain
    • this structure will be close to what EB already has
  • modify the existing services to publish this payload
  • write a new worker for partner # 2
  • write unit tests

api-gateway:

  • configure new endpoints for plans and carriers
  • write sample client for plans and carriers

Sprint 4 (5/19 - 6/2): ["spill over" sprint]

  • buffer absorb the spill overs from previous sprint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment