It's possible to introduce real-time features to PHP applications without deep modifications of the current codebase.
Using WAMP you can build distributed systems out of application components which are loosely coupled and communicate in (soft) real-time.
There is no need to learn a whole new language, with the implications it has.
It also opens the door to write reactive, event-based, distributed architectures and to achieve easier scalability by distributing messages to multiple systems.
At Tuenti, we do two code pushes per week, sometimes modifying thousands of files and running thousands of automated tests and build operations before, to ensure not only that the code works but also that proper localization is applied, bundles are generated and files get deployed to hundreds of servers as fast and reliable as possible.
We use opensource tools like Mercurial, MySQL, Jenkins, Selenium, PHPUnit and Rsync among our own in-house ones, and have different development, testing, staging and production environments.
We had to fight with problems like statics bundling and versioning, syntax errors and of course the fact that we have +100 engineers working on the codebase, sometimes merging and releasing more than a dozen branches the same day. We also switched from Subversion to Mercurial to obtain more flexibility and faster branching operations.
With this talk we will explain the process of how code changes in ourcode repository end up in live code, detailing some practices and tips that we apply.
At Tuenti, we do two code pushes per week, sometimes modifying thousands of files and running thousands of automated tests and build operations before, to ensure not only that the code works but also that proper localization is applied, bundles are generated and files get deployed to hundreds of servers as fast and reliable as possible.
We use opensource tools like Mercurial, MySQL, Jenkins, Selenium, PHPUnit and Rsync among our own in-house ones, and have different development, testing, staging and production environments.
We had to fight with problems like statics bundling and versioning, syntax errors and of course the fact that we have +100 engineers working on the codebase, sometimes merging and releasing more than a dozen branches the same day. We also switched from Subversion to Mercurial to obtain more flexibility and faster branching operations.
With this talk we will explain the process of how code changes in ourcode repository end up in live code, detailing some practices and tips that we apply.
Following up from AMQP presentation, this is a more in-depth coverage of RabbitMQ with workshop-style walkthrough, covering various aspects of the system.
This webinar lays the foundation for your PHP app. If you have at least one year of PHP experience, this webinar explains these key building blocks for creating and maintaining enterprise-class applications, mobile services, and third-party libraries. It covers: what makes mission-critical PHP different? (including cloud-based solutions); how to maintain your PHP stack; how to ensure code security; and what to do when your system goes down?
This is the slide deck for ProcessOne first live XMPP Academy.
Here are the questions covered:
1. ejabberd SaaS architecture questions
- What is the best way to archive user messages if we do not want to sync data from user device?
- Why does ejabberd SaaS not use async mechanisms for archiving messages to customer back-end server?
- Mobile XMPP support: Explain standby, push and detached modes.
2. XMPP / ejabberd questions
- How does ejabberd internally store messages which are not yet delivered?
- How are privacy lists managed in ejabberd?
- What is on the ejabberd roadmap ? OAuth !
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Gavin Roy
VP of Architecture for AWeber Communications
Back Dev
Messaging Standards and Systems - AMQP & RabbitMQ
Find more by Gavin here: https://speakerdeck.com/gmr
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
CommandBox is a standalone, native tool for Windows, Mac, and Linux that will provide you with a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and some sweet ASCII art. It seamlessly integrates to work with any of the *Box products but it is also open for extensibility for any ColdFusion (CFML) project as it is also written in ColdFusion (CFML) using our concepts of CommandBox Commands.
CommandBox also functions as a package management tool which integrates seamlessly with ForgeBox, our community of ColdFusion (CFML) projects, but can also integrate with git,svn,http, ftp and many more code endpoints. Come learn about one of the coolest tools for CFML in years and how it can help your everyday productivity.
Building Modern Digital Services on Scalable Private Government Infrastructur...Andrés Colón Pérez
These are a series of presentations and knowledge collected from the web to help knowledge sharing at the government of Puerto Rico, created with the hope of helping transform government culture by engaging key personnel in diverse areas of central government IT. We discussed design and development methodologies as well as implementation, network and server technologies that led to the successful launch of the most popular online service in PR.gov, in the hope that the knowledge is retained and used to prevent problems that have plagued digital services of the past.
How did Puerto Rico build the New Good standing Certificate Online Service? How did it scale to handle millions of visitors while having 0 licensing costs? This is the technical overview of the design, philosophy and implementation.
- Good standing certificate knowledge transfer presentation by Andrés Colón
Note on attribution: some content such as logos and designs were used from the web. Rights remain with their original authors. Thanks for sharing with the world.
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
Apache Roadshow Chicago Talk on May 14, 2019
In this talk we’ll look at the ways Apache Thrift can solve performance problems commonly facing next generation applications deployed in performance sensitive capital markets and banking environments. The talk will include practical examples illustrating the construction, performance and resource utilization benefits of Apache Thrift. Apache Thrift is a high-performance cross platform RPC and serialization framework designed to make it possible for organizations to specify interfaces and application wide data structures suitable for serialization and transport over a wide variety of schemes. Due to the unparalleled set of languages supported by Apache Thrift, these interfaces and structs have similar interoperability to REST type services with an order of magnitude improvement in performance. Apache Thrift services are also a perfect fit for container technology, using considerably fewer resources than traditional application server style deployments. Decomposing applications into microservices, packaging them into containers and orchestrating them on systems like Kubernetes can bring great value to an organization; however, it can also take a very fast monolithic application and turn it into a high latency web of slow, resource hungry services. Apache Thrift is a perfect solution to the performance and resource ills of many microservice based endeavors.
Following up from AMQP presentation, this is a more in-depth coverage of RabbitMQ with workshop-style walkthrough, covering various aspects of the system.
This webinar lays the foundation for your PHP app. If you have at least one year of PHP experience, this webinar explains these key building blocks for creating and maintaining enterprise-class applications, mobile services, and third-party libraries. It covers: what makes mission-critical PHP different? (including cloud-based solutions); how to maintain your PHP stack; how to ensure code security; and what to do when your system goes down?
This is the slide deck for ProcessOne first live XMPP Academy.
Here are the questions covered:
1. ejabberd SaaS architecture questions
- What is the best way to archive user messages if we do not want to sync data from user device?
- Why does ejabberd SaaS not use async mechanisms for archiving messages to customer back-end server?
- Mobile XMPP support: Explain standby, push and detached modes.
2. XMPP / ejabberd questions
- How does ejabberd internally store messages which are not yet delivered?
- How are privacy lists managed in ejabberd?
- What is on the ejabberd roadmap ? OAuth !
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Gavin Roy
VP of Architecture for AWeber Communications
Back Dev
Messaging Standards and Systems - AMQP & RabbitMQ
Find more by Gavin here: https://speakerdeck.com/gmr
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
CommandBox is a standalone, native tool for Windows, Mac, and Linux that will provide you with a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and some sweet ASCII art. It seamlessly integrates to work with any of the *Box products but it is also open for extensibility for any ColdFusion (CFML) project as it is also written in ColdFusion (CFML) using our concepts of CommandBox Commands.
CommandBox also functions as a package management tool which integrates seamlessly with ForgeBox, our community of ColdFusion (CFML) projects, but can also integrate with git,svn,http, ftp and many more code endpoints. Come learn about one of the coolest tools for CFML in years and how it can help your everyday productivity.
Building Modern Digital Services on Scalable Private Government Infrastructur...Andrés Colón Pérez
These are a series of presentations and knowledge collected from the web to help knowledge sharing at the government of Puerto Rico, created with the hope of helping transform government culture by engaging key personnel in diverse areas of central government IT. We discussed design and development methodologies as well as implementation, network and server technologies that led to the successful launch of the most popular online service in PR.gov, in the hope that the knowledge is retained and used to prevent problems that have plagued digital services of the past.
How did Puerto Rico build the New Good standing Certificate Online Service? How did it scale to handle millions of visitors while having 0 licensing costs? This is the technical overview of the design, philosophy and implementation.
- Good standing certificate knowledge transfer presentation by Andrés Colón
Note on attribution: some content such as logos and designs were used from the web. Rights remain with their original authors. Thanks for sharing with the world.
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
Apache Roadshow Chicago Talk on May 14, 2019
In this talk we’ll look at the ways Apache Thrift can solve performance problems commonly facing next generation applications deployed in performance sensitive capital markets and banking environments. The talk will include practical examples illustrating the construction, performance and resource utilization benefits of Apache Thrift. Apache Thrift is a high-performance cross platform RPC and serialization framework designed to make it possible for organizations to specify interfaces and application wide data structures suitable for serialization and transport over a wide variety of schemes. Due to the unparalleled set of languages supported by Apache Thrift, these interfaces and structs have similar interoperability to REST type services with an order of magnitude improvement in performance. Apache Thrift services are also a perfect fit for container technology, using considerably fewer resources than traditional application server style deployments. Decomposing applications into microservices, packaging them into containers and orchestrating them on systems like Kubernetes can bring great value to an organization; however, it can also take a very fast monolithic application and turn it into a high latency web of slow, resource hungry services. Apache Thrift is a perfect solution to the performance and resource ills of many microservice based endeavors.
An introduction to SignalR
This deck was part of my presentation to Virtusa employees on an ASP.NET asynchronous, persistent signaling library known as SignalR
There is also a slide on how to use SignalR with SharePoint.
Date: August 2013
Follow / Tweet me: @ShehanPeruma
The evolution of micro services architecture. Mainframe, Midrange, Client Server, SOA. Best practices of microservices. Load balancing, BigData, design patterns. When and why to use microservices.
This is episode 4 of the building the perfect PHP app for the enterprise webinar series. Nothing is faster than a frustrated user clicking away from your site or abandoning your service. Avoid attrition by learning how to tune your applications towards lightning-fast page loads and response times. Learn: the basic principles behind enterprise PHP performance management; How to optimize workloads through background jobs and caching; How to measure performance and make data-driven decisions.
Real time applications are here and users expecting that Real time data is part of UX. What are your options for building RTA with Symfony2/PHP? Slides from Symfony Camp Ukraine.
Beyond REST and RPC: Asynchronous Eventing and Messaging PatternsClemens Vasters
In this session you will learn about when and why to use asynchronous communication with and between services, what kind of eventing/messaging infrastructure you can use in the cloud and on the edge, and how to make it all work together.
Node.js BFFs - our way to the better/micro frontendsEugene Fidelin
To be able to implement new features in as little time as possible, we migrated our
monolithic Java-based frontends towards smaller Node.js BFFs (backend-for-frontend, BFF
pattern - create separate backend services to be consumed by specific frontend
applications).
Now we are close to the next step in our journey and adopt Micro-frontends architecture to
build our web apps as a composition of even smaller features which are owned by
independent teams
Overcoming software development challenges by using an integrated software fr...Design World
With ever increasing Connectivity options, Security Protocols and Sophisticated Human Interfaces, Software and AP developers find themselves caught more deeply in the dichotomy of dealing with increasing complexity of designs and shrinking timelines. Resource constraints and constantly evolving software landscape provide challenges to software Integration that have to be overcome to enable designers to focus on the actual application.
Developers need a Modular Software Framework that accelerates software integration, provides flexible programming options and enables application re-use across multiple platforms. “That framework is MPLAB® Harmony.”
Join us for the webinar series where we provide a technical overview of MPLAB® Harmony, Live tool demos, Microchip and third party Middleware support and finally demonstrate how Harmony accelerates software integration and moves development focus and resources to Application Development and testing.
In this first installment of a three part webinar series attendees will learn:
-Current Software Development Challenges and how MPLAB® Harmony, Microchip’s software framework, overcomes them.
-Technical Overview of MPLAB® Harmony Framework.
-Integrating RTOS in an embedded development ecosystem.
-Graphics Application demo illustrating how MPLAB® Harmony facilitates changing system requirements.
HPC control systems are evolving into the future. This presentation looks at where this evolution may lead, and describes how the control system of the future might be constructed.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
3. Agenda
• Concepts and foundations
• Real-time communication patterns
• Implementations
• Examples
4. Real-time
A system is said to be real-time if the total
correctness of an operation depends not only upon
its logical correctness, but also upon the time in
which it is performed
7. Criteria for real-time
• Hard – missing a deadline is a total system failure
• Firm – infrequent deadline misses are tolerable, but
may degrade the system's QoS. Results are NOT
usefulness after its deadline
• Soft – the usefulness of a result degrades after its
deadline, thereby degrading the system’s QoS
9. Soft real-time
Typically used to solve issues of concurrent
access and the need to keep a number of
connected systems up-to-date through
changing situations
10. Soft real-time use cases
• Live audio-video systems
• Users collaboration
• Messaging applications, etc…
• Real-time analytics
• Gaming
• Etc…
11. The road to 500 million
Symfony downloads
https://symfony.com/500million
12. Why adding a soft
real-time feature?
• To improve end-user experience
• Due to insufficient scaling capacity
16. WebSockets
• Full-duplex communication channels over a
single TCP connection
• Currently supported in most major
browsers
• Can be used by any client or server
application
17. HTTP/2
• Major revision of the HTTP
• Replacement for how HTTP is expressed
“on the wire”
• Focus on performance, end-user perceived
latency, network and server resource usage
18. The Mobile Internet
• Inestable connections
• HTTP & TCP slow-start are usually not a
good match for constantly dropped
connections
• Network interface kills battery
• Large responses + periodic polling = bad
26. RPC – Example 3
Communication between micro-services
Auth
Server
login(user)
Analytics Payments
track(user) process(order)
27. Publisher/Subscriber
• A peer subscribe to a topic
• Another peer publish a message about this
topic
• All publishers interested in the topic
receives the message
31. Not to be confused with WAMP:
”Windows + Apache + MySQL + PHP"
32. WAMP
• Open standard WebSocket subprotocol
• Provides two application messaging
patterns in one unified protocol
• Remote Procedure Calls
• Publish & Subscribe
33. WAMP Features
• Enables different technologies, processes,
machines, etc… to communicate with each
other, in soft real-time
34. WAMP Features
• Based on modern Web standards:
WebSocket, JSON and URIs
• Designed with first-class support for
different languages in mind (Polyglot)
35. Unified Application Routing
Routing of events (for PUB/SUB) and routing of
calls (for RPC) in one unified protocol
Caller CalleeDealer
Publisher SubscriberBroker
36. Dealer
• Routes calls from the caller to the callee
and routes back results or errors
• Callers and callee don’t know about each
other
• Applications using RPC benefit from these
loose coupling
Caller CalleeDealer
37. Broker
• Keeps a book of subscriptions
• Forward the events (messages) to all
subscribers
• Publisher are subscribers are loosely
coupled
Publisher SubscriberBroker
38. Unified Protocol
• When you combine a Broker and a Dealer
you get what WAMP calls a Router
Router Broker Dealer= +
39. The Big Picture
WAMP Router
(Dealer + Broker)
BrowserBrowserBrowserBrowser
Mobile
Clients
Services
40. Do we really need
another wheel?
How does WAMMP compare to other technologies
41. Criteria
• Pub/Sub
• RPC
• Routed RPC (not only point-to-point)
• Web native: run natively on the Web (without
tunneling or bridging)
• Cross Language
• Open Standard
44. WAMP Routers
• crossbar.io – Advanced, open-source, full
featured, supported by the creators of
WAMP
• Your own… It’s an open protocol
45. WAMP Ecosystem
• Thruway – library built in PHP that provides
both a client and a router
• Turnpike – router implemented in Go
• wamp.rt – router for NodeJS
• Erwa – router implemented in Erlang
56. Trade-off
• Situation that involves losing one
quality or aspect of something in
return for gaining another quality
or aspect
• It often implies a decision to be
made with full comprehension of
both the upside and downside of
a particular choice
57. Is PHP the right tool
for the job?
There is not simple answer
61. • A big ecosystem of thousands of useful
libraries and components easily installable
thanks to Composer
• Very powerful template engines, ORMs,
etc…
62. • We have implemented very powerful design
patters in PHP coming from Java and other
languages
• We have several thousands of high quality code
running on production
• We have invested multiple hours testing,
refactoring and improving the codebase
67. Upsides
• Possibility to introduce real-time features
without deep modifications in the current
codebase
• No need to learn a whole new language/
stack, with the implications it has
• Loosely coupled systems
68. Upsides cont…
• Opens the door to write reactive, event-
based, distributed architectures
• Scalability is easier to achieve by
distributing messages to multiple systems
70. The Stack
• crossbar.io used as the router (dealer+broker)
• PHP client gathers and publish events
• Silex/Symfony backend serve the data and
contains the biz logic
71. crossbar.io
• Networking platform for distributed and
micro-services applications
• Full implementation of the WAMP protocol
• Feature rich, scalable, robust and secure
• It takes care of the hard parts of messaging
so you can focus on your app's features
72.
73. Tips and Tricks
• WSS
• Deadlines
• Timeouts
• Retries with back-off, etc…
• Idempotency
74. Opinionated
Conclusion
• Understand core concepts and patterns,
technology is volatile
• Question everything: Why?, why not?
• Decide based on several factors: user
experience, scalability, feasibility, developer
experience, maintenance costs/debt, etc…
75. Don’t Stop Here
• gRPC – A high performance, open-source
universal RPC framework from Google
http://www.grpc.io/
• IoT, WoT, etc… – real world objects
connected to the wider internet