Kafka Group Internal Monolog | 220629


_0610 Okay looking into it I have a better idea of what Kafka is, but has came with some issues I need to have each service have it own message command system thingy. This comes with a lot of extra items

  • Each service is going to need another running main to listen for message sent via Kafka
    • So going to need a whole another running program(main.go) use concurrency to listen for REST and Kafka Messages at the same time.
  • I need to make a schema or pick a command schema to get the services to send and receive commands cause right I am going sending byte arrays that were once strings I think i can use JSON which means I could just send a REST command if pick to make a whole new main to run or just skip and send it right to middle-ware/handlers
  • Saga orchestrations so I did some work on this, but I needs to make a way to pump these sagas out have them keep track of whats happens.
  • Do I create one big cross service topic-group or break them down, cause only having one feelslike an incorrect way to do,
    • Positives of having just one big cross-service topic-group
      • could have savings with not having to have separate containers for each listener that service interacts with or having
      • granted I could run them all one main.go with concurrency depending on traffic and available compute would mean it could slow.
      • Would not have to create and track the separate list of listeners for each of the services and update them when a new service comes online
    • Negatives of having just one big cross-service topic-group
      • That’s a lot of messages for each of the listeners to just wade through
      • I am going to need to create a Sage Orchestration Tracking number thingy so that listeners know that messages is meant form them, but I think i mite have to do that anyway cause one mite not get it or something and other Sagas mite mess up the order if done at that time
      • Separations of concerns seems to be broken with this cause down the line there is bound to be services that will never communicate. This mite also have security concerns

_0729 Random thought: I had I am going to need to figure out a global timeout time for services and messages cause I know I am going to have things trying to access data that will be in the Pending state so a retry will be needed cause I need to not link data to data that is in the pending state. So error handling will need to be done and the more I think about it that gets complex.