Platform Requirements
This page provides an overview
- List of platform components
- High-level details of functionality
API Gateway
Accessing the services with inbuilt functionality of securing and rate limiting
EB: CM had it’s own Api Proxy for making authenticated/secured calls from public into CM’s infrastructure which makes use of the Authentication service within the platform. Personally I’d use this only for Api calls that should work with the frontend/app in CM’s platform and not for very high throughput / core api’s. At CDP as well as Conversational our core services are connected to public directly and we run our own authentication (at CDP) which is a cache of what is registered in CM’s authentication service.
Authentication
To authenticate the internal and external service calls
EB: We have an authentication service in the core platform which should be taken into account. There’s also a rebuild going on which should see the light any time soon. Jan Willem Raats (Dev) and Marino Fassaert (PO) can help you on this.
Authorization
To authorize whether context passed is authorized to make that service call
EB: CM Platform also has Authorization in place. It’s maintained in the same team as Authentication. We also have libraries that will ease development and actual permission checking in code by adding attributes.
Circuit Breaker
To limit the impact of service failures and latencies. Prevent cascading failure in the system
EB: As fas as I know we don’t have anything built in platform for this. Polly was mentioned a few times during the years so this might help you with that.
Health Check
Monitoring service for checking the health of the endpoint and alerting in case of issues
EB: When hosted at Google this can be implemented relatively easy. I think there’s already plans for meetings meetings with Mostafa Abdalla from the Conversational team.
Logging
A centralized place to keep the logs and capture the flow using correlation id
EB: This is also available on Google Cloud. CDP/Conversational have libraries to add GCP logging with a few lines of code. Not entirely sure if this is readily available as common package. Mostafa or Mark would know (Mark is on holiday and will be back the 10th of October).
Service Proxy
Library to allow service-to-service communication which encapsulates discovery, circuit breaker, and retry mechanism
EB: Nothing concrete to my knowledge.
Service Registry and Discovery
A way to register the services during deployment and discover HTTP endpoint by the service key
EB: Quite some teams use Kubernetes nowadays (at least CDP and Conversational do) and some of the mentioned functionality could be available there. Not entirely sure what you need.