History[ edit ] Cultural schema theory may be a relatively new theory, but neither schema nor cultural schema are new concepts.
Over the last few years we've been building lots of systems that make a lot of use of events, and they've been often praised, and often damned. Our North American office organized a summit, and ThoughtWorks senior developers from all over the world showed up to share ideas.
So we spent a lot of time trying to tease out what some useful patterns might be. This note is a brief summary of the main ones we identified. Event Notification This happens when a system sends event messages to notify other systems of a change in its domain.
A key element of event notification is that the source system doesn't really care much about the response. Often it doesn't expect any answer at all, or if there is a response that the source does care about, it's indirect. There would be a marked separation between the logic flow that sends the event and any logic flow that responds to some reaction to that event.
I spoke about this topic in more depth Schema driven memory my opening keynote at goto Chicago in April Event notification is nice because it implies a low level of coupling, and is pretty simple to set up. It can become problematic, however, if there really is a logical flow that runs over various event notifications.
The problem is that it can be hard to see such a flow as it's not explicit in any program text. Often the only way to figure out this flow is from monitoring a live system.
This can make it hard to debug and modify such a flow. The danger is that it's very easy to make nicely decoupled systems with event notification, without realizing that you're losing sight of that larger-scale flow, and thus set yourself up for trouble in future years.
The pattern is still very useful, but you have to be careful of the trap. A simple example of this trap is when an event is used as a passive-aggressive command. This happens when the source system expects the recipient to carry out an action, and ought to use a command message to show that intention, but styles the message as an event instead.
An event need not carry much data on it, often just some id information and a link back to the sender that can be queried for more information. The receiver knows something has changed, may get some minimal information on the nature of the change, but then issues a request back to the sender to decide what to do next.
Event-Carried State Transfer This pattern shows up when you want to update clients of a system in such a way that they don't need to contact the source system in order to do further work.
A customer management system might fire off events whenever a customer changes their details such as an address with events that contain details of the data that changed.
A recipient can then update it's own copy of customer data with the changes, so that it never needs to talk to the main customer system in order to do its work in the future. An obvious down-side of this pattern is that there's lots of data schlepped around and lots of copies. But that's less of a problem in an age of abundant storage.
What we gain is greater resilience, since the recipient systems can function if the customer system is becomes unavailable.
We reduce latency, as there's no remote call required to access customer information. We don't have to worry about load on the customer system to satisfy queries from all the consumer systems.
But it does involve more complexity on the receiver, since it has to sort out maintaining all the state, when it's usually easier just to call the sender for more information when needed.History. Cultural schema theory may be a relatively new theory, but neither schema nor cultural schema are new concepts.
The idea of schemas existing as ideal types in the mind dates back all the way back to Plato (see also Schema and Schema (psychology)).In the 19th century German philosopher Immanuel Kant developed the idea that every person's experiences are gathered in memory. Mapping Terminology Mapping (v).The act of determining how objects and their relationships are persisted in permanent data storage, in this case relational databases.
Abstract. This document specifies the XML Schema Definition Language, which offers facilities for describing the structure and constraining the contents of XML documents, including those which exploit the XML Namespace facility. Schema-driven Memory and Structural Alignment C.
Hunt Stilwell ([email protected]) Univeristy of Texas at Austin, Department of Psychology. In the s and 70s, researchers paid a great deal of attention to schematic memory, or memory for thematic information.
In the s and 90s, this research ground to . Schema-driven Memory and Structural Alignment C. Hunt Stilwell ([email protected]) Univeristy of Texas at Austin, Department of Psychology 1 University Station A Austin, TX USA Arthur B.
Markman ([email protected]) Univeristy of Texas at Austin, Department of Psychology .