SlideShare a Scribd company logo
1 of 1
Download to read offline
Cognito Ltd
A Year In Industry
Philip Sewell
Middleware Software Developer
 Bug fixing
 Data fixing
 Database work
 Implementing new features
 Providing support / Responding to
emergencies
During my time with Cognito I was a Software
Developer on the Middleware team within the
Product Research and Development department
- this could be considered as being the “heart”
of the company in the sense that we need to
look after the software which make up the
entire back-end system.
My roles included:
The Rabbit Retry Service Project
Cognito use the Advanced Message Queueing Protocol (AMQP) for reliable and
quick message delivery and processing. To help assist, the open source messaging
solution RabbitMQ is used by all of the middleware components - this is
integrated with the Spring framework for ease of use and maintainability.
Main issues identified:
 If the next message in the queue fails to process (termed a DLQ) then this
is put to the front of the queue again
 The component will constantly retry the failed message, potentially pre-
venting a backlog of “good” messages to be processed behind it
 There is no way to edit the message before a retry, so the chances are the
same message will fail consistently
Agile Software Development
The solution:
 If a message fails to process, eject it from the queue and send it to a new
component listening on a different Rabbit exchange
 The new component will store the message in a database, ready for
processing/modification
 The Retry Service will poll the database and send messages back to their
original queue (retry) for a defined number of times before being marked
as a fail (or DLQ)
 Ensures that offending messages are sent to the back of a queue
 There is a Sprint Definition meeting in
which the Product Owner will determine
the candidates for the upcoming sprint
 The team will finalise their Sprint Backlog in
the Sprint Planning meeting
 Sprints last two weeks, and include a daily
15 minute meeting to discuss progress
 An end-of-sprint demo presents what we
have done to the Product Owner
 The Sprint Retrospective allows the team to
review how the two weeks have been
“Old” Retry Mechanism
“New” Retry Service
Cognito strongly an Agile way of software
development, with software releases occurring
every two sprints. The process is as follows:
Technologies Used

More Related Content

Similar to FOEN9001CognitoPoster

Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
gilashikwa
 
Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
teekhesawaal
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
AAKASH S
 
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
estefana2345678
 
Kallio Chipster Bosc2009
Kallio Chipster Bosc2009Kallio Chipster Bosc2009
Kallio Chipster Bosc2009
bosc
 

Similar to FOEN9001CognitoPoster (20)

agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overview
 
Transactional Roll-backs and upgrades [preview]
Transactional Roll-backs and upgrades [preview]Transactional Roll-backs and upgrades [preview]
Transactional Roll-backs and upgrades [preview]
 
The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)
 
Agile - Software - Development Powerpoint
Agile - Software - Development PowerpointAgile - Software - Development Powerpoint
Agile - Software - Development Powerpoint
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUM
 
Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
1.extreme programming-NCCA
1.extreme programming-NCCA1.extreme programming-NCCA
1.extreme programming-NCCA
 
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...
 
3. quality.ppt
3. quality.ppt3. quality.ppt
3. quality.ppt
 
Ch3. agile sw dev
Ch3. agile sw devCh3. agile sw dev
Ch3. agile sw dev
 
7 stages of system Development life cycle ppt
7 stages of system Development life cycle ppt7 stages of system Development life cycle ppt
7 stages of system Development life cycle ppt
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Kallio Chipster Bosc2009
Kallio Chipster Bosc2009Kallio Chipster Bosc2009
Kallio Chipster Bosc2009
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 

FOEN9001CognitoPoster

  • 1. Cognito Ltd A Year In Industry Philip Sewell Middleware Software Developer  Bug fixing  Data fixing  Database work  Implementing new features  Providing support / Responding to emergencies During my time with Cognito I was a Software Developer on the Middleware team within the Product Research and Development department - this could be considered as being the “heart” of the company in the sense that we need to look after the software which make up the entire back-end system. My roles included: The Rabbit Retry Service Project Cognito use the Advanced Message Queueing Protocol (AMQP) for reliable and quick message delivery and processing. To help assist, the open source messaging solution RabbitMQ is used by all of the middleware components - this is integrated with the Spring framework for ease of use and maintainability. Main issues identified:  If the next message in the queue fails to process (termed a DLQ) then this is put to the front of the queue again  The component will constantly retry the failed message, potentially pre- venting a backlog of “good” messages to be processed behind it  There is no way to edit the message before a retry, so the chances are the same message will fail consistently Agile Software Development The solution:  If a message fails to process, eject it from the queue and send it to a new component listening on a different Rabbit exchange  The new component will store the message in a database, ready for processing/modification  The Retry Service will poll the database and send messages back to their original queue (retry) for a defined number of times before being marked as a fail (or DLQ)  Ensures that offending messages are sent to the back of a queue  There is a Sprint Definition meeting in which the Product Owner will determine the candidates for the upcoming sprint  The team will finalise their Sprint Backlog in the Sprint Planning meeting  Sprints last two weeks, and include a daily 15 minute meeting to discuss progress  An end-of-sprint demo presents what we have done to the Product Owner  The Sprint Retrospective allows the team to review how the two weeks have been “Old” Retry Mechanism “New” Retry Service Cognito strongly an Agile way of software development, with software releases occurring every two sprints. The process is as follows: Technologies Used