Kafka Group Internal Monolog | 220629
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
- Positives of having just one big cross-service topic-group
_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.