Problems in microservices - tarunchhabra/parakalo GitHub Wiki

1) the issue of communication between the different services that the system

2 ways to communicate between micro-services. They are Point to Point (P2P)/Synchronous Communication, and Publish-Subscribe (Pub-Sub)/Asynchronous Communication.

What is the differences between those two?

P2P as it’s called Synchronous Communication, we know that one app will directly communicate to other app, using HTTP protocol, which is the app does require immediate get response directly from the server.

P2P as it’s called Synchronous Communication, we know that one app will directly communicate to other app, using HTTP protocol, which is the app does require immediate get response directly from the server. Pub-Sub as it’s called asynchronous communication, we know that it’s does not required immediate response from the server, and the message that sent will be placed to a message queue (or known as Event Queue in Enterprise Messaging System).

-Using messaging and event driven architecture majorly

  • OR use gRPC with protocol buffers such as Atom
  • Use GraphQL

2) Distributed transactions

  • No 2pc commit
  • Saga pattern

3) Complex Observability

Distributed tracing tool- Zipkin (open source), HoneyComb, Jaeger(used by UBER) Use correlationID to track the flow among multiple services. Log Aggregation- ELK stack

4) Implementing cross cutting concerns using Microservice chassis and Service Mesh

  • External config pattern

5) Deployment

Using K8S, service mesh and side car patterns

4) Testing- complex E2E testing

5) Complex Reporting and DWH issues

6) Developing business logic using Event souring

  1. How to handle the common code to be used by multiple services in microservices?

shared library vs shared service?

########################## My doubts about microservices

  1. How to handle the common code to be used by multiple services in microservices?

  2. Aggregate vs Aggregation patterns

  3. API composition vs BFF?

Aggregation pattern VS API composition

  1. Micro frontends

  2. Caching in microservices and Data services..when do we need data services? Ask Sam as well as Mark

  3. Abstraction between decomposition of microservices - i.e. how to do decompose the services such that if we want to remove any service then there is no/minimal impact to clients? This question is basically about how to do information hiding

  4. Event storming vs Event sourcing

  5. Grpc and microservices- 10x performance

  6. GraphQL and microservices

  7. E2E testing in microservices

  8. Data access and sharing (option-3 in memory replicated cache and option-4 data domain(shared tables)) option-5 data pump

  9. wiretap pattern ?

  10. how to implement transactional log tail pattern? is it worth or the use case?

  11. Alternatives of CQRS ?

  12. how to implement circuit breaker - using Istio or Hystrix/Resilince4j/Failsafe/jrugged etc ?

  13. Aggreagtor pattern vs BFF pattern

https://github.com/Comcast/jrugged