Transaction management is an important matter for enterprises. It allows applications to have consistent data and process that data in a reliable manner. Transaction management is a low-level concern that a business developer shouldn’t have to code himself. EJBs provide these services in a very simple way: either programmatically with a high level of abstraction or declaratively using metadata. Since Java EE 7, Managed Beans can also have declarative transactions in the same way.
Most of an enterprise application’s work is about managing data: storing them (typically in a database), retrieving them, processing them, and ...