SlideShare a Scribd company logo
1 of 13
Download to read offline
Technology Overview
HTML5             Mobile HTML5
API
                        JavaScript

               Ruby on Rails

  HTTP                        Data
Passenger       Redis      MongoDB      Solr

 Apache                      MySQL

               Gentoo Linux

            Engine Yard AppCloud

                Amazon EC2


              Technology Stack
Application Master
  Rails                 HAProxy

 Apache


          Application             Application
             Rails                   Rails

            Apache                 Apache



           Master Database
Redis         MongoDB             Solr

               MySQL



        Production Cluster
Events        Venues        Accounts
  Event 1       Venue 1          #1

  Event 2       Venue 2          #2


Reservations   Guest Lists   Ticket Types
    #1             #1            #1

    #2             #2            #2


                 Guests      Ticket Sales
                   #1            #1

                   #2            #2


               Data Model
Event 1              Event 2             Event 3
Reservation 1       Reservation 1        Ticket Type 1

Reservation 2        Guest List 1        Ticket Sale 1

Guest List 1           Guest 1           Ticket Sale 2
  Guest 1              Guest 2           Ticket Sale 3
  Guest 2            Guest List 2        Ticket Sale 4

Ticket Type 1          Guest 1
                                         Ticket Type 2
Ticket Sale 1          Guest 2           Ticket Sale 1
Ticket Sale 1                            Ticket Sale 2




                Event Report Documents
Lean Software Development




   Behavior-Driven Design




Development Methodology
Sell features that don’t exist




              WHAT
             to build




Implement features Just-In-Time




Lean Software Development
Specify how a feature should behave




               HOW
              to build




Implement until automated tests pass




    Behavior-Driven Design
Behavior Specifications

                         Cucumber

Jasmine                    RSpec

                         Capybara

Capybara WebKit       Selenium         Simulator

Headless WebKit        Firefox



                   Unit Tests

                  Ruby on Rails



          Automated Testing Technology
Scenario: The customer should see a PDF link at the
 end of the purchase process.


 Given an event "Test Event"
 And 2 active "General Admission" tickets at 10 dollars
 And the event "Test Event" is active,
 When I go to the ticket sales page
 And I follow the buy tickets link for "Test Event"
 And I press "checkout"
 And I submit valid payment details,
 Then I should see "download your ticket here".




         Example Behavioral Specification
def test_generates_valid_hard_ticket_code

  ticket_sale = TicketSale.create(
    :event_id => @event.id, :quantity => 2
  )

  hard_code = ticket_sale.generate_hard_ticket_code

  assert TicketSale.valid_hard_ticket_code? hard_code

end




                Example Unit Test
Backlog     Ready         Working   Complete
Task #14   Task #17      Task #14   Task #15

Task #18   Task #20      Task #11   Task #12

Task #22   Task #21       Task #9   Task #10

Task #23   Task #19       Task #6   Task #8

Task #24   Task #16       Task #4   Task #7

Task #25   Task #15                 Task #5

Task #26   Task #13                 Task #3

Task #27                            Task #2

Task #28                            Task #1


             Kanban Status Board
Task Backlog

More Related Content

Similar to Venue Driver Technology Overview

Scalable Streaming Data Pipelines with Redis
Scalable Streaming Data Pipelines with RedisScalable Streaming Data Pipelines with Redis
Scalable Streaming Data Pipelines with RedisAvram Lyon
 
DDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learnedDDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learnedQframe
 
JavaScript tracing, debugging, profiling made simple with spy-js
JavaScript tracing, debugging, profiling made simple with spy-jsJavaScript tracing, debugging, profiling made simple with spy-js
JavaScript tracing, debugging, profiling made simple with spy-jsArtem Govorov
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperfNew Relic
 
Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020
Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020
Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020Ron Rothman
 
Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzkenetzke
 
Harnessing the Power of AI with Windows Ink
Harnessing the Power of AI with Windows InkHarnessing the Power of AI with Windows Ink
Harnessing the Power of AI with Windows InkWindows Developer
 
Sane Sharding with Akka Cluster
Sane Sharding with Akka ClusterSane Sharding with Akka Cluster
Sane Sharding with Akka Clustermiciek
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices Apigee | Google Cloud
 
Seaside - Web Development As You Like It
Seaside - Web Development As You Like ItSeaside - Web Development As You Like It
Seaside - Web Development As You Like ItLukas Renggli
 
Dmitry Lebedev: Agile Testing Using Agile Tools
Dmitry Lebedev: Agile Testing Using Agile ToolsDmitry Lebedev: Agile Testing Using Agile Tools
Dmitry Lebedev: Agile Testing Using Agile ToolsAgile Lietuva
 
Cqrs and event sourcing in azure
Cqrs and event sourcing in azureCqrs and event sourcing in azure
Cqrs and event sourcing in azureSergey Seletsky
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumberDaniel Kummer
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with QuarkusNiklas Heidloff
 
Marino mercedesportfolio201212
Marino mercedesportfolio201212Marino mercedesportfolio201212
Marino mercedesportfolio201212Marino Mercedes
 
Marino-mercedesportfolio201212
Marino-mercedesportfolio201212Marino-mercedesportfolio201212
Marino-mercedesportfolio201212Marino Mercedes
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습Oracle Korea
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing Inho Kang
 
React Native: Expectations vs Reality
React Native: Expectations vs RealityReact Native: Expectations vs Reality
React Native: Expectations vs RealityKaloyan Kosev
 

Similar to Venue Driver Technology Overview (20)

Scalable Streaming Data Pipelines with Redis
Scalable Streaming Data Pipelines with RedisScalable Streaming Data Pipelines with Redis
Scalable Streaming Data Pipelines with Redis
 
DDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learnedDDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learned
 
JavaScript tracing, debugging, profiling made simple with spy-js
JavaScript tracing, debugging, profiling made simple with spy-jsJavaScript tracing, debugging, profiling made simple with spy-js
JavaScript tracing, debugging, profiling made simple with spy-js
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperf
 
Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020
Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020
Concurrent Python at Beeswax - Ron Rothman - NYC Python Meetup 2020
 
Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzke
 
Harnessing the Power of AI with Windows Ink
Harnessing the Power of AI with Windows InkHarnessing the Power of AI with Windows Ink
Harnessing the Power of AI with Windows Ink
 
Sane Sharding with Akka Cluster
Sane Sharding with Akka ClusterSane Sharding with Akka Cluster
Sane Sharding with Akka Cluster
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
 
Seaside - Web Development As You Like It
Seaside - Web Development As You Like ItSeaside - Web Development As You Like It
Seaside - Web Development As You Like It
 
Dmitry Lebedev: Agile Testing Using Agile Tools
Dmitry Lebedev: Agile Testing Using Agile ToolsDmitry Lebedev: Agile Testing Using Agile Tools
Dmitry Lebedev: Agile Testing Using Agile Tools
 
Cucumber
CucumberCucumber
Cucumber
 
Cqrs and event sourcing in azure
Cqrs and event sourcing in azureCqrs and event sourcing in azure
Cqrs and event sourcing in azure
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumber
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with Quarkus
 
Marino mercedesportfolio201212
Marino mercedesportfolio201212Marino mercedesportfolio201212
Marino mercedesportfolio201212
 
Marino-mercedesportfolio201212
Marino-mercedesportfolio201212Marino-mercedesportfolio201212
Marino-mercedesportfolio201212
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
React Native: Expectations vs Reality
React Native: Expectations vs RealityReact Native: Expectations vs Reality
React Native: Expectations vs Reality
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Venue Driver Technology Overview

  • 2. HTML5 Mobile HTML5 API JavaScript Ruby on Rails HTTP Data Passenger Redis MongoDB Solr Apache MySQL Gentoo Linux Engine Yard AppCloud Amazon EC2 Technology Stack
  • 3. Application Master Rails HAProxy Apache Application Application Rails Rails Apache Apache Master Database Redis MongoDB Solr MySQL Production Cluster
  • 4. Events Venues Accounts Event 1 Venue 1 #1 Event 2 Venue 2 #2 Reservations Guest Lists Ticket Types #1 #1 #1 #2 #2 #2 Guests Ticket Sales #1 #1 #2 #2 Data Model
  • 5. Event 1 Event 2 Event 3 Reservation 1 Reservation 1 Ticket Type 1 Reservation 2 Guest List 1 Ticket Sale 1 Guest List 1 Guest 1 Ticket Sale 2 Guest 1 Guest 2 Ticket Sale 3 Guest 2 Guest List 2 Ticket Sale 4 Ticket Type 1 Guest 1 Ticket Type 2 Ticket Sale 1 Guest 2 Ticket Sale 1 Ticket Sale 1 Ticket Sale 2 Event Report Documents
  • 6. Lean Software Development Behavior-Driven Design Development Methodology
  • 7. Sell features that don’t exist WHAT to build Implement features Just-In-Time Lean Software Development
  • 8. Specify how a feature should behave HOW to build Implement until automated tests pass Behavior-Driven Design
  • 9. Behavior Specifications Cucumber Jasmine RSpec Capybara Capybara WebKit Selenium Simulator Headless WebKit Firefox Unit Tests Ruby on Rails Automated Testing Technology
  • 10. Scenario: The customer should see a PDF link at the end of the purchase process. Given an event "Test Event" And 2 active "General Admission" tickets at 10 dollars And the event "Test Event" is active, When I go to the ticket sales page And I follow the buy tickets link for "Test Event" And I press "checkout" And I submit valid payment details, Then I should see "download your ticket here". Example Behavioral Specification
  • 11. def test_generates_valid_hard_ticket_code ticket_sale = TicketSale.create( :event_id => @event.id, :quantity => 2 ) hard_code = ticket_sale.generate_hard_ticket_code assert TicketSale.valid_hard_ticket_code? hard_code end Example Unit Test
  • 12. Backlog Ready Working Complete Task #14 Task #17 Task #14 Task #15 Task #18 Task #20 Task #11 Task #12 Task #22 Task #21 Task #9 Task #10 Task #23 Task #19 Task #6 Task #8 Task #24 Task #16 Task #4 Task #7 Task #25 Task #15 Task #5 Task #26 Task #13 Task #3 Task #27 Task #2 Task #28 Task #1 Kanban Status Board