How Batch Processing challenges are different from GUI-based programming

We all are aware of the challenges faced when you are designing a GUI-based application or website. To freshen up your memory here are a few to list.

  • Security Issues → Who can access applications who can’t access. What someone can access and what is a restricted resource. Basically issues related to authorization and authentication.

All these are well-known issues to every software developer and there are several solutions to each and every problem mentioned above.

However batch is totally different it doesn’t have any user interaction. Almost 70% of traditional issues which are valid for GUI-based programming don’t hold any ground in the case of batch programming. Issues like security and data validation are still valid in the case of batch processing. In the case of batch processing, you don’t have to take the headache of spikes in resource usages. You don’t have to worry about error handling. You can always decide how much load you want to give and design accordingly. Here you need to worry more about logging and notifications if anything goes wrong.

Whenever you are developing anything in the software world there are few things which we need to always care

  • Maintainability → How easy is your software to manage

Let’s discuss in detail how they hold ground in case of batch processing

Maintainability → In batch processing maintaining your batch is not very difficult. As with good logging and debugging you can easily identify where the issues are. And you don’t have the stress of overutilization of resources where infra starts behaving crazy.

Usability → Usability doesn’t hold any ground in batch processing as no client intervention is provided.

Extensibility → In the case of extensibility they are as good as other software. You have units or modules and you can extend them just like other software.

Scalability → Batches are way more scalable than GUI-based sites. A million request on a site is kind of something which needs a celebration but in batch, you need to process 10 million records in a single day.

Availability → Availability is a bit different in the case of batch processing. Batch processing need not be available 100% of the time but they need to be available when processing is going on. Most batches are being run on same hardware where a GUI-based server is running but at different times.

Credit: Michael T. Minella — The Definitive Guide to Spring Batch

Software engineer, Leading highly scalable product @scale of million records per day.