Open APIs

 View Only
  • 1.  TM Forum implemented in a micro-service environment

    Posted Apr 17, 2019 12:51
    Hi, 

    we are currently trying to implement TMF in a micro-service architecture. The issue is that each micro service is only responsible of the data related to its domain while TMF APIs combined data from other domains/service represented as References. 

    to give sense to this, when you submit a GET request to TMF 637 Product Inventory Management that is supposed to be exposed by a Product Inventory micro service, according to TMF swagger definition the service will return inventory data (product, ProductCharacteristic, ProductTerm etc..) but also data belonging to the Product Order service, Party Service and Product catalog. This look wrong to me because the only information the Product Inventory service will have of the order, party and product offer is a correlation ID that can also be used to generate an HREF. data like name, types, validFor for entities belonging to other micro services can only be retrieved by calling the owner service and if you do it from within the inventory service it will create a dependency between the Inventory service and Order, Party and catalogue service. 

    Is there anyone who implemented it in a micro service environment ? How did you go about it.



    ------------------------------
    Cedric Kabongo

    ------------------------------


  • 2.  RE: TM Forum implemented in a micro-service environment

    Posted Apr 18, 2019 08:50
    Edited by Pieter Pabst Apr 19, 2019 03:50
    Hi Cedric,

    One way dealing with it, is using projections. E.g. consume the events from your relevant domains and build up dedicated projections with a service to serve the needs to your TMF API's (for compliance sake).

    Also you seem to be assuming the relation of service to API is one on one. This doesn't need to be case. You can aggregate, e.g. in your API gateway, or build facades. Sub-optimal I agree.

    In general I agree the current TMF OpenAPI schema's are'nt always well suited for companies using DDD with CQRS/ES and other micro-service related patterns and techniques.

    Br,

    ------------------------------
    Pieter Pabst
    Dynacommerce
    ------------------------------



  • 3.  RE: TM Forum implemented in a micro-service environment

    Posted Apr 25, 2019 05:26
    Hello Cedric,
    We also thinking about how to implement TMF API in our existing OSS system. Our OSS system is decomposed into several subsystems which do not cover exactly each TMF API domain. It is a similar problem to microservice architecture. So I think there are three possible solutions:
    1. On the front of your system, you have some kind Gateway API which in some cases provide aggregated data from two or more microservice. Gateway API has to make a call to two or more microsystem to complete all needed data.
    2. In one microservice you have mirror objects of data from another microservice. And you synchronize this data via messages and message broker.
    3. One microservice call the other microservice to complete data. This is antipattern in a microservice architecture and I mention it for the record.

    Paul Stanek

    ------------------------------
    Paul Stanek
    TO BE VERIFIED
    ------------------------------



  • 4.  RE: TM Forum implemented in a micro-service environment

    TM Forum Member
    Posted Apr 26, 2019 05:27
    Hello All

    Ignoring the question of the scope of individual APIs and the relationship between them for a moment.
    I have found in general the APIs you want to expose to others are in fact compositions of more than one back end API.

    We use the API gateway pattern to achieve this where a single API has multiple target back ends and we take the information from each to produce the desired result.

    ------------------------------
    Derrick Evans
    BT Group plc
    ------------------------------



  • 5.  RE: TM Forum implemented in a micro-service environment

    TM Forum Member
    Posted Apr 25, 2019 05:26

    Cedric,

    Within a Product inventory resource (a concrete instance of a subscription to a ProductOffering) you have references (only) to ProductOffering, RelatedParty, ProductOrder in the form of ProductOfferingRef, RelatedPartyRef and ProductOrderRef objects where the only mandatory fields are id and href.

    GET /productInventory/v2/product/42
    {
         "id": "42",
         "href": "/productInventory/v2/product/42",
         ...
         "productOffering": {
              "id": "72",
              "href": "/productCatalogManagement/v3/productOffering/72"
         },
         "relatedParty": {
              "id": "47",
              "href": "/partyManagement/v2/party/47"
         },
         "productOrder": {
              "id": "88",
              "href": "/productOrdering/v3/productOrder/88"
         }
    }



    ------------------------------
    Vance Shipley
    SigScale Global Inc.
    ------------------------------



  • 6.  RE: TM Forum implemented in a micro-service environment

    Posted May 07, 2019 07:36
    I think the best solution should be a combination of the different solutions that were proposed here.  

    1. micro-services to expose TMF APIs but only use/expose id and Href fields for all the reference entities as proposed by Vance Shipley
    2. the API Gateway to call additional micro-services using href and aggregate the data before returning the response as proposed by Paul Stanek.


    ------------------------------
    Cedric Kabongo

    ------------------------------



  • 7.  RE: TM Forum implemented in a micro-service environment

    Posted Nov 25, 2020 14:17
    In Vodafone UK we have this architecture and the way we have solved it is to use TMF Entity microservices to expose exactly info about their scope, and then have another  layer or microservices on top that provide aggregation and journeys that are actually consumed by "client systems". It's some sort of hierarchy with separation of concerns.

    ------------------------------
    Fernando Marin Diaz
    Vodafone UK Ltd
    ------------------------------



  • 8.  RE: TM Forum implemented in a micro-service environment

    Posted Nov 25, 2020 14:17
    In Vodafone UK we have this scenario and the way we have architectured it is to have 2 microservice "layers":
    - One of microservices purely implementing TMF Entity APIs
    - One layer on top of the previous one with microservices performing aggregation/journey composition. This layer is exposed to "client applications"

    This hierarchy ensures separation of concerns while providing flexibility

    ------------------------------
    Fernando Marin Diaz
    Vodafone UK Ltd
    ------------------------------



  • 9.  RE: TM Forum implemented in a micro-service environment

    Posted Apr 26, 2019 10:17
    The domain level functionalities are built through "core services" per domain. We use "aggregator" pattern to build composite API which can leverage the micro core services. The composite service can provide the HREF to access individual domain level object.

    ------------------------------
    Sadhasivam Angamuthu
    Tracfone Wireless, Inc
    ------------------------------