separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions
separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions • encapsulates the app's business logic
separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions • encapsulates the app's business logic • coordinates responses
separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions • encapsulates the app's business logic • coordinates responses
separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions • encapsulates the app's business logic • coordinates responses
named for an activity rather than an entity • represent signi fi cant business domain processes/operations • are distinct from technical services • may have side effects
named for an activity rather than an entity • represent signi fi cant business domain processes/operations • are distinct from technical services • may have side effects
ned interface” • can be a single component or composed of several components separated by architectural boundaries • Context: SOA and Microservices • highlights importance of Single Responsibility Principle
stateless • named for an activity rather than an entity • represent signi fi cant business domain processes/operations • are distinct from technical services • may have side effects Service layer: • separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions • encapsulates the app's business logic Single Responsibility Principle !
stateless • named for an activity rather than an entity • represent signi fi cant business domain processes/operations • are distinct from technical services • may have side effects Service layer: • separates domain logic from application logic • de fi nes application boundary • sets available operations • coordinates domain objects • controls transactions • encapsulates the app's business logic Single Responsibility Principle ! 🤔 🫷 🫸
Services, which are: • are stateless • named for an activity rather than an entity • represent signi fi cant operations • coordinate domain objects & control transactions • comply with Single Responsibility principle • may have side effects The message being sent to us 🫷 🫸
Services, which are: • are stateless • named for an activity rather than an entity • represent signi fi cant operations • coordinate domain objects & control transactions • comply with Single Responsibility principle • may have side effects The message being sent to us 🫷 🫸
activity, not entity represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic 🫷 🫸
represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic
entity represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic ?
entity represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic
not entity represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic
entity represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic
represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic
represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic
represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic Sorry, but NO!
represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects no application logic ?
as objects • Doesn’t match with what Fathers said • Devs do not achieve proclaimed benefits • Opposes ideas of Layered architecture, Modularity and SRP
represents business operations coordinates domain objects controls transactions complies with Single Responsibility principle should theoretically have side effects Code of the same level of abstraction