I’m new to Elixir and FP, and I’ve been reading this forum for a few months waiting for the right project to pop up. I think I found my project — and I need advice already.
Background
Our company has around 150 partners
, each with decently large interests with us, and it’s critical to contact them directly, quickly by phone for certain issues relating to their assets. Oddly, these people are bad at keeping up their profiles with us.
To make sure we always have the right contact information, we periodically run names/biz addresses through data providers
like Pitney Bowes or whoever to get updated information. We get an updated PhoneNumber
for the Name
we provide.
Because some of our clients work across verticals/companies, some numbers returned will have multiple names attached. That is to say that BOB SMITH @ 123 MAIN ST might have num1
– but FIONA JONES @ 2244 SOUTH AVE might also be associated with num1
.
This application is designed to validate the information that our providers
give us.
Infrastructure
We run three providers
in a waterfall. A main Query
(name, address) goes to a microservice, and the microservice sends out three SubQuery
requests to each of the three Provider
s.
All is hosted on GCP - Google PubSub logs the query and results for each request of a Provider
.
A customer service agent will call ~5 clients per day. The exact agent will rotate to avoid “burn in” of the task. A mobile website will allow the agent to dial a number and select one of:
- Who the number belongs to (multiple options available)
- Disconnected
- Wrong Number
- Unknown
We will use this information to save money by reducing the number of our profile enhancement sources.
Questions
- I want a web UI, but also have some need for ETL. Should I structure such a small app all in a Phoenix project?
- Any libraries you would recommend?
- (aside) Graph or Relational?
- Umbrella project or multiple projects?
- Is Elixir/Phoenix a choice you would make for this app?
Thanks - I’m so excited to finally get the opportunity to use this language!