For a number of years the Java world has addressed the challenges of Batch processing with Frameworks such as Spring Batch and IBM WebSphere Compute Grid. Well known for their performance and robustness, they are now widely used, in particular by the Financial Industry.
With the open source Framework Summer Batch, you can now create Batch Jobs in .NET C#, with checkpoint restart, chunk processing and parallel processing.
At their birth, Java and .NET C# were conceived to support backend real-time processing for Web Apps. Over the past 20 years they have grown as the mainstream languages in the Financial, Healthcare and Public domains. As an overwhelming number of Web and Mobile Applications have been rolled out, the usage Java and C# has become essential, now replacing Legacy languages such as Cobol, PL1 or Natural.
Finance backend processing needs to address recurring business functions such as account balance and interest calculation in banking or premium calculation in insurance. These often complex processing run on a regular (daily, weekly, monthly, quarterly, yearly …) basis and involve very large numbers of accounts or contracts within limited timeframes. Performance and robustness is key to this Industry.
Driven by those needs, Batch processing made its way into the Java and .NET world, at first turning to homegrown frameworks for Batch features support such as chunk processing or check point restart. Each company with the need for Batch was re-inventing the wheel, creating its own in-house Batch Frameworks.
This approach has not been sustainable; between 2004 and 2010 the emergence of IBM WCG and Spring Batch Frameworks in the Java world, successfully addressed this need with the Java language. These Frameworks implemented concepts that had proven their value in over 60 years of Legacy Batch production cycles, resulting in a foundation on which to build Java Batch Applications. They also leveraged new distributed features such as parallel processing, enabling further gains in terms of performance. It took 15 years for Batch processing to become part of the Java specification with JSR-352.
As the Java world always favored a clear separation between business processing and database access, one of the drivers behind these specifications was to address Batch features in Java rather than relying on stored procedures. The release of the Java Batch specification has validated the Spring Batch Framework as a Batch standard for Java.
The number of Spring Batch downloads has risen to over 1.5 Million per year, as indicated by the Maven download repository below.
Microsoft went a different path, relying on SQL Server for Batch processing with a Cobol like procedural approach using stored procedures. Running code on the Database server seemed to be the right approach to retrieve and process very large amount of data. There is setback with this approach: the Database server consumes CPU for Batch calculations away from its primary purpose. Moreover, this brings the bulk of Business logic processing on the Database server, even when it is shared with interactive online Web Apps.
On another hand, C# has grown as a powerful language for OO programming containing all the elements to build a Batch framework. Nothing justifies Java should be the sole modern language for Batch processing.
Accenture was at the origin of Spring Batch Framework development. They identified opportunity to offer an alternative approach for Batch processing in the .NET C# world. In a joint effort with Blu Age Corporation they decided to build that Batch Framework for C# based on the Java Batch Specification. This gave birth to an open source .NET C# Batch Framework. As one developer on the team put it: after Spring comes Summer, a name was found!
Summer Batch is about to blow its first candle in November and with over 430 downloads on Nuggets it is steadily building steam. Despite its youth, it is already in use on a number of projects which are contributing to the framework. Summer Batch is open source, continuously enriched with feedback and contributions from teams adopting it for Batch processing.
With the needs for Batch processing in all Business domain and the growth of .NET C#, when will Summer Batch reach its first million downloads? Check the Nugget page for progress: https://www.nuget.org/packages/SummerBatch/
Find out more at: www.summerbatch.org