Hi all,

I am initiating this thread to provide Custos initial version
implementation details. Since we are moving into cloud native development
of Custos. I have come up with the following structure for micro services
based development of Custos.

Mainly codebase composed of  the atomic services and integration services.

Atomic services are independent services with minimal network communication
and they have their own database with local data.

Integration services represents the actual business use case and it acts as
an orchestrator between core services and external services. This is
exposed as a rest api via API Gateway. Integration services talk to atomic
services via gRPC protocol. Integration services includes gRPC stub of
core services. Each integration service and core service is deployed to
Kubernetes cluster as services and have their own service addresses.

Main problem  with this architecture is transaction management and it is
planned to handle with Saga using Axon Server or Camunda like framework.
All the services are written using Spring Boot and Spring Cloud.

All the Integration services are registered with the service registry such
as Consul. API Gateway is used for API Management capabilities such as SSL
Termination, throttling..etc. There are Open Source API Gateways such as
Ambassador, Envoy which are compatible with Kubernetes and service
registries. API Gateway is responsible for service discovery.

 Vault and Keycloak are deployed in Kubernetes with HA[1].


Let me know your thoughts.



[1]
https://docs.google.com/document/d/1zGXlstt9w1ge8oRWjiUv3LdQETcSYtwDngm9grB5sbk/edit?usp=sharing


Thanks

Isuru

Reply via email to