1. A system comprising: at least one processor; a gateway that is arranged and configured to intercept messages being exchanged between multiple services; a message repository that is logically coupled to the gateway and that is arranged and configured to store the intercepted messages; a service description repository that is arranged and configured to store multiple service descriptions, wherein each of the service descriptions corresponds to one of the services; a rules repository that is arranged and configured to store mapping rules; and an adaptation engine, executed by the at least one processor, that is arranged and configured to: generate a sequence of firing rules using the service descriptions and the mapping rules responsive to the intercepted messages; generate one or more outgoing messages in response to the intercepted messages using the sequence of firing rules; wherein the adaptation engine comprises an adapter state manager that is arranged and configured to: maintain the message repository, monitor a service state for each instance of the services, track a history of firing rules that have been fired, and initiate the generation of the sequence of firing rules and the generation of the outgoing messages using the message repository, the service state for each of the instances of the services and the history of the firing rules, wherein the history of firing rules is represented by a set of message rule pairs, wherein each message rule pair includes a message and a mapping rule.