If your application was considered a living organism, the Service layer would be its beating heart. Regardless of how the environment and the things that interact with it change over time, it must remain strong and be able to adapt. In this chapter, we begin our journey with the three coding patterns: Service, Domain, and Selector, which were introduced in Chapter 4, Apex Execution and Separation of Concerns.
In this chapter, we will review the pattern as set out by Martin Fowler and then review how this has been applied to the Lightning Platform in Apex, describing design guidelines born from the separation of concerns we defined in the previous chapter.
One concern of this layer is interacting with the database; a later chapter will cover querying this in more detail. This chapter will focus on updating the database and introducing a new pattern...