This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I didn't find any appropriate forum here to post this question so I thought this may be the best forum to ask the same. So if the moderators feel they can move this to more appropriate thread.
I am designing my java interface and faced with this question while designing request/response objects for it - What is the difference between Bulk and Batch processing? I did some google and see that people use that interchangeably.
Here I my thoughts on this so far,
1. Batch processing means set of things processed "together" in the single thread.
2. Bulk processing may create multiple parallel threads to process N incoming requests. However due to that it may have to be "Asych" mode always
3. Bulk processing may internally process group of requests in "batch". Hence Bulk is a bigger component than the Batch processor.
I seem to be implying that Batch is synch always and bulk is asych BUT that is the point of confusion for me. I don't want to imply that Batch can be asynch but then it doesn't matter to the caller if its Batch or Bulk.
"... it doesn't matter to the caller if it's Batch or Bulk." is the key to approaching your dilemma. From a design standpoint, that's a very good approach. The caller should be able to say "Here's a bunch of stuff, go and process it. I don't really care how, just give me the results, thanks." Internally, you can go hog-wild in making distinctions between batch vs bulk, synch vs asynch. As long as you clearly define what you're talking about when you use each term you should be fine. I would even buy into your definitions if I were helping to code it out. I would, however, probably object to tying bulk/batch to synch/asynch or vice versa. As you suggest, those are orthogonal concerns and they shouldn't be tightly coupled to one another.