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 Instances | These are copies of the software required to perform the server’s functions. Each copy of the program currently active on either a virtual server/machine or physical computer is considered a ‘server instance’ | | Containers | Standardize and simplify the deployment of code, sometimes even full applications, to the cloud without requiring any changes to its original code. Containers on AWS | | Cloud Services | Infrastructure, platforms, or software that are made available by third-party providers, available to customers via the internet. They facilitate data flow between clients and servers and are accessible to anyone with a computer, OS and internet connection RedHat | | Cloud Architecture | Refers to the various components, such as databases, applications, platforms, available to both front-ends and back-ends and their relationship to each other (ie. network) within the cloud. Wikipedia | | AWS | Amazon Web Services. Provides a highly reliable and scalable, cloud-based infrastructure AWS | | EC2/Beanstalk vs Heroku | Heroku is a container-based cloud platform/AWS is a secure cloud services platform. Heroku offers a ready-to-use environment that is fast to deploy code on/AWS deployment service is relatively more complicated. Heroku is most suitable to startups and medium-sized businesses/AWS focuses mainly on medium to very large businesses. Heroku can meet low computational demands/AWS is capable of meeting very high demands. Heroku does not require infrastructure maintenance/AWS essentially needs a capable DevOps. Heroku does not support as many geographical regions as AWS. “Heroku vs AWS |