Reading notes for Code Fellows!
FIFO queues have the same features as standard queues. However, they also support “exactly-once” processing and ordering of the queue. FIFO queues also have options that help prevent duplicate messages from being generated or received.
Subscribers to the messages should be configured to emit a “received’ event back to the server to confirm receipt of a message. Upon detecting the “received” event, the server can then safely remove the message from the queue.
Event driven programming best represents the observer pattern of software design, in which a subject maintains a list of its observers and notifies them automatically of any state changes, typically by calling one of their methods.
The easiest tests to implement on event driven systems are unit tests which test individual components of differing parts of the sytems. Tests can be performed to verify the server and clients are communicating correctly. Otherwise, event changes can be mocked or simulated and the resulting output from the system can be observed/monitored.
“Testing Event-Driven Systems”
| Vocabulary Term | Definition | | — | — | | Server | A piece of computer hardware or software that provides functionality for other programs or devices, called “clients”. Wikipedia | | Pub/Sub | An asynchronous messaging service available in all Google Cloud regions that offers durable message storage and “real-time” message delivery. Google Cloud Docs | | WRRC | Web Request Response Cycle. The web is a cycle where the requests and responses of clients and servers flow from and to each other. “The Request/Response Cycle of the Web |