I am writing a simple specification for a module that is part of a bigger call center application. First I write down business rules, then application logic. I realize that some rules apply only to a specific third party telecommunication service API that we are using, like

There are three invoice templates in the telecommunication service backend. If template 1 was chosen, send copy of invoice to xy@example.com

It sounds like a business rule, but it refers to a specific implementation - other service providers might have a different templating system etc. Choosing another service API would therefore mean to update or change these business rules, which feels wrong.

Is it then better to understand this as application logic?

Edit: To the downvoters, care to explain why this is not a legitimate question?

1 Answer 1


The rule attempts to describe some business logic: someone needs to be informed at some point of some event.

Unfortunately it does not tell the full story: in an invoice process, you do not choose receivers because of a template (unless highly artistic invoice templates would be used and royalties need to be paid to some artist).

So very probably the rule was expressed using some shortcut, e.g. template X was created for business unit Y or customer Z, and in the process defined by that business unit, or requested by that customer, a copy of the invoice is required for organisational reasons. Hence, wouldn’t you miss this point if you simply consider this as an application rule?

You need to find the missing reason connecting the template to the email address and reformulate the business rule accordingly. You then can find more and better alternatives to implement it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.