Is your design implementable?
One of the challenges with Enterprise Architecture and high-level design is that the solution looks good on paper, but is not possible to implement in reality. This is especially tough if we are trying some new types of solution, at least in this organisation.
The question is how we can do a litmus test of the architecture before we pour down to much money in the project. Lets take our high-level design from our example as a way to show this.
We said that we would use REST API for integration to the database and that we should use standards if possible. Within TM Forum*, there is an information model, i.e. SID**. An approach is to take part of this model to model users and their roles, the information that should reside in the SQL-database. A class diagram based on this model would be similar to the picture below.
The next step would then to define REST API for each of these classes and the result would be:
/common/party/PartyRole
/common/party/PartyRoleSpecification
/common/party/PartyRoleCategory
/common/party/Organisation
/common/party/OrganisationName
/common/party/Individual
Is this possible to do like this? What is your opinion?
If you search a little bit more on TM Forum site, you will find a lot of information about REST API and standard interfaces. There are design guidelines how to make these REST API based on SID information model, using a domain model approach. It also includes a number of defined interfaces, example of JSON code and lots of other valuable information
I have also setup a development environment on Azure to define the initial database tables and relations for the class diagram as way to see if the high-level design holds.
My answer to the first question is yes. The high-level design we have proposed is implementable. The other question is if the business model works and that is very hard to find out without a minimum viable product that you could offer to the market.
* TM Forum is member association, originally for telecom but now for digital providers
** Shared Information Datamodel