SlideShare a Scribd company logo
How NoSQL allows Shutl
 to deliver even faster

 database selection
 implementation problems and solution
 lessons learned
Volker Pacher
senior developer @shutl
         @vpacher
http://github.com/vpacher
Shutl nosql exchange talk
Shutl nosql exchange talk

Recommended for you

Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops

This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization. Key Takeaways: * Understand why connection pooling is essential for high-traffic applications * Explore various connection poolers available for PostgreSQL, including pgbouncer * Learn the configuration options and functionalities of pgbouncer * Discover best practices for monitoring and troubleshooting connection pooling setups * Gain insights into real-world use cases and considerations for production environments This presentation is ideal for: * Database administrators (DBAs) * Developers working with PostgreSQL * DevOps engineers * Anyone interested in optimizing PostgreSQL performance Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services

postgresqlpgsqldatabase
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter

Widya Salim and Victor Ma will outline the causal impact analysis, framework, and key learnings used to quantify the impact of reducing Twitter's network latency.

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation

Java Servlet programs

• SaaS platform
• SaaS platform
• we provide an API for carriers and merchants
• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• customers can chose between a delivery either:

Recommended for you

Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy

Not so much to say

Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...

Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023 https://arxiv.org/abs/2307.12980

• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• customers can chose between a delivery either:
   within 90 minutes of purchase
• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• customers can chose between a delivery either:
   within 90 minutes of purchase
   or a 1 hour window of their choice
• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• customers can chose between a delivery either:
   within 90 minutes of purchase
   or a 1 hour window of their choice
   (same day or any day)
• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• customers can chose between a delivery either:
     within 90 minutes of purchase
     or a 1 hour window of their choice
     (same day or any day)
• fastest delivery to date 8:30 min

Recommended for you

UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference

We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner! We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too! Check out our proposed agenda below 👇👇 08:30 ☕ Welcome coffee (30') 09:00 Opening note/ Intro to UiPath Community (10') Cristina Vidu, Global Manager, Marketing Community @UiPath Dawid Kot, Digital Transformation Lead @Proservartner 09:10 Cloud migration - Proservartner & DOVISTA case study (30') Marcin Drozdowski, Automation CoE Manager @DOVISTA Pawel Kamiński, RPA developer @DOVISTA Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 09:40 From bottlenecks to breakthroughs: Citizen Development in action (25') Pawel Poplawski, Director, Improvement and Automation @McCormick & Company Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company 10:05 Next-level bots: API integration in UiPath Studio (30') Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 10:35 ☕ Coffee Break (15') 10:50 Document Understanding with my RPA Companion (45') Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath 11:35 Power up your Robots: GenAI and GPT in REFramework (45') Krzysztof Karaszewski, Global RPA Product Manager 12:20 🍕 Lunch Break (1hr) 13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30') Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance 13:50 Communications Mining - focus on AI capabilities (30') Thomasz Wierzbicki, Business Analyst @Office Samurai 14:20 Polish MVP panel: Insights on MVP award achievements and career profiling

#uipathcommunity#automation#automationdeveloper
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx

Your comprehensive guide to RPA in healthcare for 2024. Explore the benefits, use cases, and emerging trends of robotic process automation. Understand the challenges and prepare for the future of healthcare automation

rpa in healthcarerpa in healthcare usarpa in healthcare industry
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry

Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data. The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs. Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution! Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.

cloudcloud native observabilitycloud native
• SaaS platform
• we provide an API for carriers and merchants
• built on mysql, rails and ruby mri
• customers can chose between a delivery either:
     within 90 minutes of purchase
     or a 1 hour window of their choice
     (same day or any day)
• fastest delivery to date 8:30 min
• customers: Argos, Maplins, DrEd.com ...
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                                                    Problems?
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                                                                                                                http://xkcd.com/287/
Challenges and Problems

Recommended for you

Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world

The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries: 1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes. 2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions. 3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines. 4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors. 5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering. 6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands. 7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems. 8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering. 9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively. Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.

fdmffffused deposition modeling
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM

Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.

quantum communicationsshannon's channel theoremclassical theory
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses

CIO Council Cal Poly Humboldt September 22, 2023

national research platformdistributed supercomputerdistributed systems
Challenges and Problems




• a whole zoo of np-complete problems
Challenges and Problems




• a whole zoo of np-complete problems
• exponential growth of joins in mysql with added features
Challenges and Problems




• a whole zoo of np-complete problems
• exponential growth of joins in mysql with added features
• code base too complex and unmaintanable
Challenges and Problems




• a whole zoo of np-complete problems
• exponential growth of joins in mysql with added features
• code base too complex and unmaintanable
• api response time growing to large the more data is added

Recommended for you

Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx

MuleSoft Meetup on APM and IDP

mulesoftai
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf

Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 : - Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants. - REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.

genaicloudrgpd
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024

Everything that I found interesting about engineering leadership last month

quantumfaxmachine
The solution for v2:
The solution for v2:



build a new api on the basis of sinatra and jruby
The solution for v2:



build a new api on the basis of sinatra and jruby
databases used:
The solution for v2:



build a new api on the basis of sinatra and jruby
databases used:
 - neo4j embedded

Recommended for you

Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection

Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.

cybersecurityanomaly detectionadvanced techniques
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf

Solar Storms (Geo Magnetic Storms) are the motion of accelerated charged particles in the solar environment with high velocities due to the coronal mass ejection (CME).

solar storms
2024 Trend Updates: What Really Works In SEO & Content Marketing
2024 Trend Updates: What Really Works In SEO & Content Marketing2024 Trend Updates: What Really Works In SEO & Content Marketing
2024 Trend Updates: What Really Works In SEO & Content Marketing

The future of SEO is trending toward a more human-first and user-centric approach, powered by AI intelligence and collaboration. Are you ready? Watch as we explore which SEO trends to prioritize to achieve sustainable growth and deliver reliable results. We’ll dive into best practices to adapt your strategy around industry-wide disruptions like SGE, how to navigate the top challenges SEO professionals are facing, and proven tactics for prioritizing quality and building trust. You’ll hear: - The top SEO trends to prioritize in 2024 to achieve long-term success. - Predictions for SGE’s impact, and how to adapt. - What E-E-A-T really means, and how to implement it holistically (hint: it’s never been more important). With Zack Kadish and Alex Carchietta, we’ll show you which SEO trends to ignore and which to focus on, along with the solution to overcoming rapid, significant and disruptive Google algorithm updates. If you’re looking to cut through the noise of constant SEO and content trends to drive success, you won’t want to miss this webinar.

searchenginejournalseocontent marketing
The solution for v2:



build a new api on the basis of sinatra and jruby
databases used:
 - neo4j embedded
 - mongoDB
The solution for v2:



build a new api on the basis of sinatra and jruby
databases used:
 - neo4j embedded
 - mongoDB
 - redis
The solution for v2:



build a new api on the basis of sinatra and jruby
databases used:
 - neo4j embedded
 - mongoDB
 - redis
 - and mysql
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40




                                                The case for graph databases
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines

Recommended for you

Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process

In this slides I explain how I have used storytelling techniques to elevate websites and brands and create memorable user experiences. You can discover practical tips as I showcase the elements of good storytelling and its applied to some examples of diverse brands/projects..

storytellinguxstorytellinguxdesign
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...

This presentation by Thibault Schrepel, Associate Professor of Law at Vrije Universiteit Amsterdam University, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp. This presentation was uploaded with the author’s consent.

competition
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...

Speaker: Lydia Di Francesco In this workshop, participants will delve into the realm of AI and its profound potential to revolutionize employee wellness initiatives. From stress management to fostering work-life harmony, AI offers a myriad of innovative tools and strategies that can significantly enhance the wellbeing of employees in any organization. Attendees will learn how to effectively leverage AI technologies to cultivate a healthier, happier, and more productive workforce. Whether it's utilizing AI-powered chatbots for mental health support, implementing data analytics to identify internal, systemic risk factors, or deploying personalized wellness apps, this workshop will equip participants with actionable insights and best practices to harness the power of AI for boosting employee wellness. Join us and discover how AI can be a strategic partner towards a culture of wellbeing and resilience in the workplace.

hrwellnessemployee wellness
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40




                                                The case for graph databases
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                  relationships are explicit stored
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40




                                                The case for graph databases
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                  relationships are explicit stored
                  white board friendly and easier domain modeling
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40




                                                The case for graph databases
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                  relationships are explicit stored
                  white board friendly and easier domain modeling
                  schema-less
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40




                                                The case for graph databases
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                  relationships are explicit stored
                  white board friendly and easier domain modeling
                  schema-less
                  a graph is its own index

Recommended for you

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot

https://www.hubspot.com/state-of-marketing · Scaling relationships and proving ROI · Social media is the place for search, sales, and service · Authentic influencer partnerships fuel brand growth · The strongest connections happen via call, click, chat, and camera. · Time saved with AI leads to more creative work · Seeking: A single source of truth · TLDR; Get on social, try AI, and align your systems. · More human marketing, powered by robots

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT

ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!

chatgptaiartificial intelligence
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings

The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.

trendsdesignproduct
Shutl Main Red:         Shutl Accent Red:
                                                                   Pantone 485 C           Pantone 484 C
                                                                   C0 M100 Y99 K4          C0 M100 Y99 K4
                                                                   R208 G31 B40            R208 G31 B40




                                                The case for graph databases
red on white                                                       HEX D01F28              HEX D01F28
                                 red on lighter tones




                                                                   Shutl Black:            Shutl Accent Grey:
                                                                   Pantone BLACK           Pantone BLACK
                                                                   C0 M0 Y0 K0100          C0 M0 Y0 K70
                                                                                           @ 70%

                                                                   Please note:
Black on white                   Reverse (white) on darker tones   The black logo should never
                                                                   appear on in any ‘dark’ colour
                                                                   background.


         5 Branding Guidelines




                  relationships are explicit stored
                  white board friendly and easier domain modeling
                  schema-less
                  a graph is its own index
                  traversals of relationships are easy
a graph is its own index
available graph databases:



     neo4j                   (jvm)
     flockdb                  (jvm)
     DEX                     (c++)
     OrientDB                (jvm)
     Sones GraphDB           (c#)
Neo4j
Why did we chose it:

Recommended for you

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health

Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits. To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups. Technology For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did. While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis. Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad. Age and Gender When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same. Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers. Race Affects Attitudes As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).

mental healthmarket researchmarket research reports
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf

Creative operations teams expect increased AI use in 2024. Currently, over half of tasks are not AI-enabled, but this is expected to decrease in the coming year. ChatGPT is the most popular AI tool currently. Business leaders are more actively exploring AI benefits than individual contributors. Most respondents do not believe AI will impact workforce size in 2024. However, some inhibitions still exist around AI accuracy and lack of understanding. Creatives primarily want to use AI to save time on mundane tasks and boost productivity.

#ai #creative
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code

Organizational culture includes values, norms, systems, symbols, language, assumptions, beliefs, and habits that influence employee behaviors and how people interpret those behaviors. It is important because culture can help or hinder a company's success. Some key aspects of Netflix's culture that help it achieve results include hiring smartly so every position has stars, focusing on attitude over just aptitude, and having a strict policy against peacocks, whiners, and jerks.

skeleton technologies
Neo4j
Why did we chose it:

it didn’t solve our np-complete problems but it solved our join hell
Neo4j
Why did we chose it:

it didn’t solve our np-complete problems but it solved our join hell
we can run it embedded in the same jvm
Neo4j
Why did we chose it:

it didn’t solve our np-complete problems but it solved our join hell
we can run it embedded in the same jvm
we can use jruby as we know ruby very well already
Neo4j
Why did we chose it:

it didn’t solve our np-complete problems but it solved our join hell
we can run it embedded in the same jvm
we can use jruby as we know ruby very well already
lots of good ruby libraries are available, we chose the neo4j gem
by Andreas Ronge (https://github.com/andreasronge/neo4j)

Recommended for you

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024

PepsiCo provided a safe harbor statement noting that any forward-looking statements are based on currently available information and are subject to risks and uncertainties. It also provided information on non-GAAP measures and directing readers to its website for disclosure and reconciliation. The document then discussed PepsiCo's business overview, including that it is a global beverage and convenient food company with iconic brands, $91 billion in net revenue in 2023, and nearly $14 billion in core operating profit. It operates through a divisional structure with a focus on local consumers.

peppepsipepsico
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)

This document provides an overview of content methodology best practices. It defines content methodology as establishing objectives, KPIs, and a culture of continuous learning and iteration. An effective methodology focuses on connecting with audiences, creating optimal content, and optimizing processes. It also discusses why a methodology is needed due to the competitive landscape, proliferation of channels, and opportunities for improvement. Components of an effective methodology include defining objectives and KPIs, audience analysis, identifying opportunities, and evaluating resources. The document concludes with recommendations around creating a content plan, testing and optimizing content over 90 days.

content strategycontent marketing
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024

The document provides guidance on preparing a job search for 2024. It discusses the state of the job market, focusing on growth in AI and healthcare but also continued layoffs. It recommends figuring out what you want to do by researching interests and skills, then conducting informational interviews. The job search should involve building a personal brand on LinkedIn, actively applying to jobs, tailoring resumes and interviews, maintaining job hunting as a habit, and continuing self-improvement. Once hired, the document advises setting new goals and keeping skills and networking active in case of future opportunities.

careerjob searchnetworking
Neo4j
Why did we chose it:

it didn’t solve our np-complete problems but it solved our join hell
we can run it embedded in the same jvm
we can use jruby as we know ruby very well already
lots of good ruby libraries are available, we chose the neo4j gem
by Andreas Ronge (https://github.com/andreasronge/neo4j)
it speaks cypher
Neo4j
Why did we chose it:

it didn’t solve our np-complete problems but it solved our join hell
we can run it embedded in the same jvm
we can use jruby as we know ruby very well already
lots of good ruby libraries are available, we chose the neo4j gem
by Andreas Ronge (https://github.com/andreasronge/neo4j)
it speaks cypher
the guys from neotech are awesome
Neo4j
                     embedded vs. standalone
        better performance          access via rest api and
        transaction support         cypher
pros:   neo4j gem is available      language independent and
        we can use cypher and       code doesn’t need to run
        traversal                   on JVM


        only the code running the   not as performant
        db has access to the db     only works with cypher
                                    transaction is on a per
cons:
                                    query basis
                                    need to write model
                                    wrappers for ourselves
Neo4j
alternatives to the neo4j gem:


   neography by Max de Marzi
   (https://github.com/maxdemarzi/neography)

   and pacer by Darrick Wiebe:
   (https://github.com/pangloss/pacer-neo4j)

Recommended for you

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights

A report by thenetworkone and Kurio. The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).

social mediasocial media marketingsocial media trends
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024

The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands. It’s important that you’re ready to implement new strategies in 2024. Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024. You’ll learn: - The latest trends in AI and automation, and what this means for an evolving paid search ecosystem. - New developments in privacy and data regulation. - Emerging ad formats that are expected to make an impact next year. Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape. If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.

searchenginejournalpaid searchdigital marketing
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary

From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world. With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively. The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage. Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience. See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers See the original article on Forbes here: http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b

public speakingpublic speaking tipspresentation tips
Neo4j
        gotchas and stuff we didn’t know:
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
• some libraries (like cucumber) are not compatible with jruby
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
• some libraries (like cucumber) are not compatible with jruby
• switch from relational ‘mentality’ to a graph one was harder than
expected

Recommended for you

ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd

Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world. Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance. For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age. Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.

marketingtechnologytech
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next

The document provides career advice for getting into the tech field, including: - Doing projects and internships in college to build a portfolio. - Learning about different roles and technologies through industry research. - Contributing to open source projects to build experience and network. - Developing a personal brand through a website and social media presence. - Networking through events, communities, and finding a mentor. - Practicing interviews through mock interviews and whiteboarding coding questions.

Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent

1. Core updates from Google periodically change how its algorithms assess and rank websites and pages. This can impact rankings through shifts in user intent, site quality issues being caught up to, world events influencing queries, and overhauls to search like the E-A-T framework. 2. There are many possible user intents beyond just transactional, navigational and informational. Identifying intent shifts is important during core updates. Sites may need to optimize for new intents through different content types and sections. 3. Responding effectively to core updates requires analyzing "before and after" data to understand changes, identifying new intents or page types, and ensuring content matches appropriate intents across video, images, knowledge graphs and more.

seogooglesearch engine optimization
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
• some libraries (like cucumber) are not compatible with jruby
• switch from relational ‘mentality’ to a graph one was harder than
expected
• we have no real solution for migrations so far
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
• some libraries (like cucumber) are not compatible with jruby
• switch from relational ‘mentality’ to a graph one was harder than
expected
• we have no real solution for migrations so far
• seeding an embedded database is hard
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
• some libraries (like cucumber) are not compatible with jruby
• switch from relational ‘mentality’ to a graph one was harder than
expected
• we have no real solution for migrations so far
• seeding an embedded database is hard
• encoding Dates and Times that are stored in UTC and work across
timezone is non-trivial
Neo4j
             gotchas and stuff we didn’t know:

• testing proved to be difficult and we had to write our own tools
• some libraries (like cucumber) are not compatible with jruby
• switch from relational ‘mentality’ to a graph one was harder than
expected
• we have no real solution for migrations so far
• seeding an embedded database is hard
• encoding Dates and Times that are stored in UTC and work across
timezone is non-trivial
• nested datastructure (hashes and array) can’t be stored and need
to be converted to json

Recommended for you

How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations

Stop putting off having difficult conversations. Seven practical tips to ensure your next difficult conversation go smoothly.

leadershipdifficult conversationsperformance management
Neo4j
                            testing:

• we are using rspec for all tests on the api and practice tdd/bdd
• setting up ‘scenarios’ for an integration test was almost impossible
with existing tools
• we decided to built our own tool based on the geoff notation
developed by Nigel Small
Neo4j
                           geoff:

developed by Nigel Small (@technige, http://geoff.nigelsmall.net/)
allows modelling of graphs in a human readable form
 (A) {"name": "Alice"}
 (B) {"name": "Bob"}
 (A)-[:KNOWS]->(B)
 and provides an interface to insert them into an existing graph
Neo4j
                            geoff gem
                (https://github.com/shutl/geoff)


• provides a dsl for creating a graph and inserting it into the db
• it is open source
• it works together with FactoryGirl
(https://github.com/thoughtbot/factory_girl)
• it supports only the graph structure of the neo4j gem at the
moment
• we haven’t solved all the issues with event listeners yet
Neo4j
                     FactoryGirl
     https://github.com/thoughtbot/factory_girl
 # This will guess the User class
 FactoryGirl.define do
   factory :user do
     first_name "John"
     last_name "Doe"
     admin false
   end

   # This will use the User class (Admin would have been
 guessed)
   factory :admin, class: User do
     first_name "Admin"
     last_name "User"
     admin      true
   end
 end

Recommended for you

#Gemfile


Neo4j                              gem 'geoff'
                                   # Basic tree like structure for DSL
                                   # the first line generates the class nodes used by
                                   Neo4jWrapper
                                   # NB 'Company' and 'Person' are classes with the
            geoff gem              Neo4j::NodeMixin
(https://github.com/shutl/geoff)   Geoff(Company, Person) do
                                     company 'Acme' do
                                       address "13 Something Road"

                                       outgoing :employees do
                                         person 'Geoff'

                                         person 'Nigel' do
                                           name 'Nigel Small'
                                         end
                                       end
                                     end

                                     company 'Github' do
                                       outgoing :customers do
                                         person 'Tom'
                                         person 'Dick'
                                         person 'Harry'
                                       end
                                     end

                                     person 'Harry' do
                                       incoming :customers do
                                         company 'NeoTech'
                                       end
                                     end
                                   end
root
                                                  node

                                 :company                          :person




                                                                  :all
       :all                                                              :all
                                  :employees              Geoff                  :all
               :all                                                                             :all
                                                                                         :all
                                                                         Nigel
   acme                                                                  Small
13 somthing
    road               :all                 :employees
                                                                                        Tom

                                                         :customers
                                                                                                Dick
              GitHub
                                                          :customers
                                                                                                       Harry

                                                           :customers

                              NeoTech
where does FactoryGirl come in?
if there are lots of attributes on a node it becomes difficult
                            to read

            Geoff(Company, Person) do
              company 'Acme' do
                address       "13 Something Road"
                contact_name “Jane Doe”
                contact_email “jane@acme.com”

                outgoing :employees do
                  person 'Geoff' do
                    first_name “Geoff”
                    last_name “Small”
                    email      “geoff@geoff.com”
                  end
                end
              end
            end

Recommended for you

attributes can be specified in factory-girl

FactoryGirl.define do
  factory :acme, class: Company do
    address       "13 Something Road"
    contact_name “Jane Doe”
    contact_email “jane@acme.com”
  end
end

FactoryGirl.define do
  factory :geoff, class: Person do
    first_name “Geoff”
    last_name “Small”
    email      “geoff@geoff.com”
  end
end
and used in the geoff dsl


Geoff(Company, Person) do
  company 'Acme' do
    geoffactory :acme
    outgoing :employees do
      person 'Geoff' do
        geoffactory :geoff
      end
    end
  end
end




      it also works with traits
Shutl nosql exchange talk
Why did we chose it:

Recommended for you

Why did we chose it:

 very easy to get started (also on dev machines)
Why did we chose it:

 very easy to get started (also on dev machines)
 it is schemaless
Why did we chose it:

 very easy to get started (also on dev machines)
 it is schemaless
 it allows for easy sharding and horizontal scaling
Why did we chose it:

 very easy to get started (also on dev machines)
 it is schemaless
 it allows for easy sharding and horizontal scaling
 it is a json store (as our api is a json api it allows very easy storage
 of the query results)

Recommended for you

Why did we chose it:

 very easy to get started (also on dev machines)
 it is schemaless
 it allows for easy sharding and horizontal scaling
 it is a json store (as our api is a json api it allows very easy storage
 of the query results)
 it allows easy storage of nested structure and allows for queries
 inside structure
Why did we chose it:

 very easy to get started (also on dev machines)
 it is schemaless
 it allows for easy sharding and horizontal scaling
 it is a json store (as our api is a json api it allows very easy storage
 of the query results)
 it allows easy storage of nested structure and allows for queries
 inside structure
 lots of ruby gems available (we use mongomapper, http://
 mongomapper.com/)
Why did we chose it:

 very easy to get started (also on dev machines)
 it is schemaless
 it allows for easy sharding and horizontal scaling
 it is a json store (as our api is a json api it allows very easy storage
 of the query results)
 it allows easy storage of nested structure and allows for queries
 inside structure
 lots of ruby gems available (we use mongomapper, http://
 mongomapper.com/)
 the 10gen office is 2 floors above ours
gotchas, cons and stuff we didn’t know:

Recommended for you

gotchas, cons and stuff we didn’t know:

• it is schemaless and changed to the schema need to handled
carefully
gotchas, cons and stuff we didn’t know:

• it is schemaless and changed to the schema need to handled
carefully
• write and updated follow the ‘fire and forget’ pattern, raising an
error on save needs to be explicitly enabled
using the decorator/presenter pattern for schemaless dbs


                             decorator




                                     ‘decorates’ object for presentation




                             controller

                                                     passes decorated object to view

          retrieves object
                                                                           view



      mongo
       DB
Shutl nosql exchange talk

Recommended for you

Why did we chose it:
Why did we chose it:

fast key-value store for caching and config values
Why did we chose it:

fast key-value store for caching and config values
very easy to implement
Why did we chose it:

fast key-value store for caching and config values
very easy to implement
we have experience with it and with resque

Recommended for you

Why did we chose it:

fast key-value store for caching and config values
very easy to implement
we have experience with it and with resque
ruby libraries are available to allow easy access and namespacing
gotchas, cons and stuff we didn’t know:
gotchas, cons and stuff we didn’t know:

• we tried to store default values for neo4j in it and found no
solution to include redis updates in a transaction
gotchas, cons and stuff we didn’t know:

• we tried to store default values for neo4j in it and found no
solution to include redis updates in a transaction
• we had some memory issues with resque that were difficult to
debug

Recommended for you

Shutl nosql exchange talk
Why are we using it:
Why are we using it:
we have lots of experience with it
Why are we using it:
we have lots of experience with it
it is very good for data aggregation (sums, groups)

Recommended for you

Why are we using it:
we have lots of experience with it
it is very good for data aggregation (sums, groups)
ideal for financial transaction data for example
Why are we using it:
we have lots of experience with it
it is very good for data aggregation (sums, groups)
ideal for financial transaction data for example
some of our non-devs invested time to learn sql and we didn’t
want to lose the skillsets
Why are we using it:
we have lots of experience with it
it is very good for data aggregation (sums, groups)
ideal for financial transaction data for example
some of our non-devs invested time to learn sql and we didn’t
want to lose the skillsets

we have already developed the schemas for v1
Graphs are awesome!

Recommended for you

but
chose the right database for the job
Any questions?

Volker Pacher


volker@shutl.co.uk   shutl.co.uk
@vpacher                 @shutl

More Related Content

Recently uploaded

TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 

Recently uploaded (20)

TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 

Featured

2024 Trend Updates: What Really Works In SEO & Content Marketing
2024 Trend Updates: What Really Works In SEO & Content Marketing2024 Trend Updates: What Really Works In SEO & Content Marketing
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
SocialHRCamp
 
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 

Featured (20)

2024 Trend Updates: What Really Works In SEO & Content Marketing
2024 Trend Updates: What Really Works In SEO & Content Marketing2024 Trend Updates: What Really Works In SEO & Content Marketing
2024 Trend Updates: What Really Works In SEO & Content Marketing
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
 
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
 
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 

Shutl nosql exchange talk

  • 1. How NoSQL allows Shutl to deliver even faster database selection implementation problems and solution lessons learned
  • 2. Volker Pacher senior developer @shutl @vpacher http://github.com/vpacher
  • 6. • SaaS platform • we provide an API for carriers and merchants
  • 7. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri
  • 8. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri • customers can chose between a delivery either:
  • 9. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri • customers can chose between a delivery either: within 90 minutes of purchase
  • 10. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri • customers can chose between a delivery either: within 90 minutes of purchase or a 1 hour window of their choice
  • 11. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri • customers can chose between a delivery either: within 90 minutes of purchase or a 1 hour window of their choice (same day or any day)
  • 12. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri • customers can chose between a delivery either: within 90 minutes of purchase or a 1 hour window of their choice (same day or any day) • fastest delivery to date 8:30 min
  • 13. • SaaS platform • we provide an API for carriers and merchants • built on mysql, rails and ruby mri • customers can chose between a delivery either: within 90 minutes of purchase or a 1 hour window of their choice (same day or any day) • fastest delivery to date 8:30 min • customers: Argos, Maplins, DrEd.com ...
  • 14. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines Problems?
  • 15. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines http://xkcd.com/287/
  • 17. Challenges and Problems • a whole zoo of np-complete problems
  • 18. Challenges and Problems • a whole zoo of np-complete problems • exponential growth of joins in mysql with added features
  • 19. Challenges and Problems • a whole zoo of np-complete problems • exponential growth of joins in mysql with added features • code base too complex and unmaintanable
  • 20. Challenges and Problems • a whole zoo of np-complete problems • exponential growth of joins in mysql with added features • code base too complex and unmaintanable • api response time growing to large the more data is added
  • 22. The solution for v2: build a new api on the basis of sinatra and jruby
  • 23. The solution for v2: build a new api on the basis of sinatra and jruby databases used:
  • 24. The solution for v2: build a new api on the basis of sinatra and jruby databases used: - neo4j embedded
  • 25. The solution for v2: build a new api on the basis of sinatra and jruby databases used: - neo4j embedded - mongoDB
  • 26. The solution for v2: build a new api on the basis of sinatra and jruby databases used: - neo4j embedded - mongoDB - redis
  • 27. The solution for v2: build a new api on the basis of sinatra and jruby databases used: - neo4j embedded - mongoDB - redis - and mysql
  • 28. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 The case for graph databases red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines
  • 29. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 The case for graph databases red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines relationships are explicit stored
  • 30. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 The case for graph databases red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines relationships are explicit stored white board friendly and easier domain modeling
  • 31. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 The case for graph databases red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines relationships are explicit stored white board friendly and easier domain modeling schema-less
  • 32. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 The case for graph databases red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines relationships are explicit stored white board friendly and easier domain modeling schema-less a graph is its own index
  • 33. Shutl Main Red: Shutl Accent Red: Pantone 485 C Pantone 484 C C0 M100 Y99 K4 C0 M100 Y99 K4 R208 G31 B40 R208 G31 B40 The case for graph databases red on white HEX D01F28 HEX D01F28 red on lighter tones Shutl Black: Shutl Accent Grey: Pantone BLACK Pantone BLACK C0 M0 Y0 K0100 C0 M0 Y0 K70 @ 70% Please note: Black on white Reverse (white) on darker tones The black logo should never appear on in any ‘dark’ colour background. 5 Branding Guidelines relationships are explicit stored white board friendly and easier domain modeling schema-less a graph is its own index traversals of relationships are easy
  • 34. a graph is its own index
  • 35. available graph databases: neo4j (jvm) flockdb (jvm) DEX (c++) OrientDB (jvm) Sones GraphDB (c#)
  • 36. Neo4j Why did we chose it:
  • 37. Neo4j Why did we chose it: it didn’t solve our np-complete problems but it solved our join hell
  • 38. Neo4j Why did we chose it: it didn’t solve our np-complete problems but it solved our join hell we can run it embedded in the same jvm
  • 39. Neo4j Why did we chose it: it didn’t solve our np-complete problems but it solved our join hell we can run it embedded in the same jvm we can use jruby as we know ruby very well already
  • 40. Neo4j Why did we chose it: it didn’t solve our np-complete problems but it solved our join hell we can run it embedded in the same jvm we can use jruby as we know ruby very well already lots of good ruby libraries are available, we chose the neo4j gem by Andreas Ronge (https://github.com/andreasronge/neo4j)
  • 41. Neo4j Why did we chose it: it didn’t solve our np-complete problems but it solved our join hell we can run it embedded in the same jvm we can use jruby as we know ruby very well already lots of good ruby libraries are available, we chose the neo4j gem by Andreas Ronge (https://github.com/andreasronge/neo4j) it speaks cypher
  • 42. Neo4j Why did we chose it: it didn’t solve our np-complete problems but it solved our join hell we can run it embedded in the same jvm we can use jruby as we know ruby very well already lots of good ruby libraries are available, we chose the neo4j gem by Andreas Ronge (https://github.com/andreasronge/neo4j) it speaks cypher the guys from neotech are awesome
  • 43. Neo4j embedded vs. standalone better performance access via rest api and transaction support cypher pros: neo4j gem is available language independent and we can use cypher and code doesn’t need to run traversal on JVM only the code running the not as performant db has access to the db only works with cypher transaction is on a per cons: query basis need to write model wrappers for ourselves
  • 44. Neo4j alternatives to the neo4j gem: neography by Max de Marzi (https://github.com/maxdemarzi/neography) and pacer by Darrick Wiebe: (https://github.com/pangloss/pacer-neo4j)
  • 45. Neo4j gotchas and stuff we didn’t know:
  • 46. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools
  • 47. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools • some libraries (like cucumber) are not compatible with jruby
  • 48. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools • some libraries (like cucumber) are not compatible with jruby • switch from relational ‘mentality’ to a graph one was harder than expected
  • 49. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools • some libraries (like cucumber) are not compatible with jruby • switch from relational ‘mentality’ to a graph one was harder than expected • we have no real solution for migrations so far
  • 50. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools • some libraries (like cucumber) are not compatible with jruby • switch from relational ‘mentality’ to a graph one was harder than expected • we have no real solution for migrations so far • seeding an embedded database is hard
  • 51. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools • some libraries (like cucumber) are not compatible with jruby • switch from relational ‘mentality’ to a graph one was harder than expected • we have no real solution for migrations so far • seeding an embedded database is hard • encoding Dates and Times that are stored in UTC and work across timezone is non-trivial
  • 52. Neo4j gotchas and stuff we didn’t know: • testing proved to be difficult and we had to write our own tools • some libraries (like cucumber) are not compatible with jruby • switch from relational ‘mentality’ to a graph one was harder than expected • we have no real solution for migrations so far • seeding an embedded database is hard • encoding Dates and Times that are stored in UTC and work across timezone is non-trivial • nested datastructure (hashes and array) can’t be stored and need to be converted to json
  • 53. Neo4j testing: • we are using rspec for all tests on the api and practice tdd/bdd • setting up ‘scenarios’ for an integration test was almost impossible with existing tools • we decided to built our own tool based on the geoff notation developed by Nigel Small
  • 54. Neo4j geoff: developed by Nigel Small (@technige, http://geoff.nigelsmall.net/) allows modelling of graphs in a human readable form (A) {"name": "Alice"} (B) {"name": "Bob"} (A)-[:KNOWS]->(B) and provides an interface to insert them into an existing graph
  • 55. Neo4j geoff gem (https://github.com/shutl/geoff) • provides a dsl for creating a graph and inserting it into the db • it is open source • it works together with FactoryGirl (https://github.com/thoughtbot/factory_girl) • it supports only the graph structure of the neo4j gem at the moment • we haven’t solved all the issues with event listeners yet
  • 56. Neo4j FactoryGirl https://github.com/thoughtbot/factory_girl # This will guess the User class FactoryGirl.define do factory :user do first_name "John" last_name "Doe" admin false end # This will use the User class (Admin would have been guessed) factory :admin, class: User do first_name "Admin" last_name "User" admin true end end
  • 57. #Gemfile Neo4j gem 'geoff' # Basic tree like structure for DSL # the first line generates the class nodes used by Neo4jWrapper # NB 'Company' and 'Person' are classes with the geoff gem Neo4j::NodeMixin (https://github.com/shutl/geoff) Geoff(Company, Person) do company 'Acme' do address "13 Something Road" outgoing :employees do person 'Geoff' person 'Nigel' do name 'Nigel Small' end end end company 'Github' do outgoing :customers do person 'Tom' person 'Dick' person 'Harry' end end person 'Harry' do incoming :customers do company 'NeoTech' end end end
  • 58. root node :company :person :all :all :all :employees Geoff :all :all :all :all Nigel acme Small 13 somthing road :all :employees Tom :customers Dick GitHub :customers Harry :customers NeoTech
  • 60. if there are lots of attributes on a node it becomes difficult to read Geoff(Company, Person) do company 'Acme' do address "13 Something Road" contact_name “Jane Doe” contact_email “jane@acme.com” outgoing :employees do person 'Geoff' do first_name “Geoff” last_name “Small” email “geoff@geoff.com” end end end end
  • 61. attributes can be specified in factory-girl FactoryGirl.define do factory :acme, class: Company do address "13 Something Road" contact_name “Jane Doe” contact_email “jane@acme.com” end end FactoryGirl.define do factory :geoff, class: Person do first_name “Geoff” last_name “Small” email “geoff@geoff.com” end end
  • 62. and used in the geoff dsl Geoff(Company, Person) do company 'Acme' do geoffactory :acme outgoing :employees do person 'Geoff' do geoffactory :geoff end end end end it also works with traits
  • 64. Why did we chose it:
  • 65. Why did we chose it: very easy to get started (also on dev machines)
  • 66. Why did we chose it: very easy to get started (also on dev machines) it is schemaless
  • 67. Why did we chose it: very easy to get started (also on dev machines) it is schemaless it allows for easy sharding and horizontal scaling
  • 68. Why did we chose it: very easy to get started (also on dev machines) it is schemaless it allows for easy sharding and horizontal scaling it is a json store (as our api is a json api it allows very easy storage of the query results)
  • 69. Why did we chose it: very easy to get started (also on dev machines) it is schemaless it allows for easy sharding and horizontal scaling it is a json store (as our api is a json api it allows very easy storage of the query results) it allows easy storage of nested structure and allows for queries inside structure
  • 70. Why did we chose it: very easy to get started (also on dev machines) it is schemaless it allows for easy sharding and horizontal scaling it is a json store (as our api is a json api it allows very easy storage of the query results) it allows easy storage of nested structure and allows for queries inside structure lots of ruby gems available (we use mongomapper, http:// mongomapper.com/)
  • 71. Why did we chose it: very easy to get started (also on dev machines) it is schemaless it allows for easy sharding and horizontal scaling it is a json store (as our api is a json api it allows very easy storage of the query results) it allows easy storage of nested structure and allows for queries inside structure lots of ruby gems available (we use mongomapper, http:// mongomapper.com/) the 10gen office is 2 floors above ours
  • 72. gotchas, cons and stuff we didn’t know:
  • 73. gotchas, cons and stuff we didn’t know: • it is schemaless and changed to the schema need to handled carefully
  • 74. gotchas, cons and stuff we didn’t know: • it is schemaless and changed to the schema need to handled carefully • write and updated follow the ‘fire and forget’ pattern, raising an error on save needs to be explicitly enabled
  • 75. using the decorator/presenter pattern for schemaless dbs decorator ‘decorates’ object for presentation controller passes decorated object to view retrieves object view mongo DB
  • 77. Why did we chose it:
  • 78. Why did we chose it: fast key-value store for caching and config values
  • 79. Why did we chose it: fast key-value store for caching and config values very easy to implement
  • 80. Why did we chose it: fast key-value store for caching and config values very easy to implement we have experience with it and with resque
  • 81. Why did we chose it: fast key-value store for caching and config values very easy to implement we have experience with it and with resque ruby libraries are available to allow easy access and namespacing
  • 82. gotchas, cons and stuff we didn’t know:
  • 83. gotchas, cons and stuff we didn’t know: • we tried to store default values for neo4j in it and found no solution to include redis updates in a transaction
  • 84. gotchas, cons and stuff we didn’t know: • we tried to store default values for neo4j in it and found no solution to include redis updates in a transaction • we had some memory issues with resque that were difficult to debug
  • 86. Why are we using it:
  • 87. Why are we using it: we have lots of experience with it
  • 88. Why are we using it: we have lots of experience with it it is very good for data aggregation (sums, groups)
  • 89. Why are we using it: we have lots of experience with it it is very good for data aggregation (sums, groups) ideal for financial transaction data for example
  • 90. Why are we using it: we have lots of experience with it it is very good for data aggregation (sums, groups) ideal for financial transaction data for example some of our non-devs invested time to learn sql and we didn’t want to lose the skillsets
  • 91. Why are we using it: we have lots of experience with it it is very good for data aggregation (sums, groups) ideal for financial transaction data for example some of our non-devs invested time to learn sql and we didn’t want to lose the skillsets we have already developed the schemas for v1
  • 93. but
  • 94. chose the right database for the job
  • 95. Any questions? Volker Pacher volker@shutl.co.uk shutl.co.uk @vpacher @shutl

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n