This is presentiation for Lambda Days 2019, in which I describe details behind building collaborative text editing experience using Replicated Growable Array CRDTs. Later on we come to defining its issues and how to solve them.
Postgres indexes: how to make them work for your applicationBartosz Sypytkowski
Indexes are one of the most crucial structures of any relational database. In this talk we'll explain how to use them efficiently, how to read query plans and what do they mean for us. We'll also cover a variety of different indexing structures available in PostgreSQL database and build up some intuition about which one to pick depending on the situation.
How do databases perform live backups and point-in-time recoveryBartosz Sypytkowski
In this talk we'll talk in details on how modern databases are capable of performing backups without downtimes and how these backups later can be used to restore database to any point in time.
While the talk describes generally applicable approach, a Litestream (SQLite backup service) is used for reference implementation.
This presentation covers HyParView and Plumtree - protocols used to build highly scalable clusters of data capable of gossiping messages between thousands of clients.
In this talk we'll discuss technical foundations behind Conflict-free Replicated Data Types (CRDT), which let us create collaborative client applications - systems where no reliance on central servers and offline-first capabilities are one of the founding principles. We'll cover some of the challenges bound to this approach and how to address them. Finally we'll present Yrs - Rust library, that allows us to build rich collaborative applications on desktop and browser.
During this presentation we'll quickly cover the core principles of eventsourced systems and different approaches to scalling event log to distributed workload. We'll focus on peer-to-peer variants of such: what are their advantages and disadvantages and how we can use them.
During this talk we'll cover the theory and practical implementation behind most common patterns in modern multi-threaded programming. How our everyday libraries and frameworks optimize use of operating system resources for maximum efficiency. We'll also try to understand differences between various approaches and what tradeoffs do they infer. Finally we'll take a look at how they are supported by various compilers and runtimes.
Postgres indexes: how to make them work for your applicationBartosz Sypytkowski
Indexes are one of the most crucial structures of any relational database. In this talk we'll explain how to use them efficiently, how to read query plans and what do they mean for us. We'll also cover a variety of different indexing structures available in PostgreSQL database and build up some intuition about which one to pick depending on the situation.
How do databases perform live backups and point-in-time recoveryBartosz Sypytkowski
In this talk we'll talk in details on how modern databases are capable of performing backups without downtimes and how these backups later can be used to restore database to any point in time.
While the talk describes generally applicable approach, a Litestream (SQLite backup service) is used for reference implementation.
This presentation covers HyParView and Plumtree - protocols used to build highly scalable clusters of data capable of gossiping messages between thousands of clients.
In this talk we'll discuss technical foundations behind Conflict-free Replicated Data Types (CRDT), which let us create collaborative client applications - systems where no reliance on central servers and offline-first capabilities are one of the founding principles. We'll cover some of the challenges bound to this approach and how to address them. Finally we'll present Yrs - Rust library, that allows us to build rich collaborative applications on desktop and browser.
During this presentation we'll quickly cover the core principles of eventsourced systems and different approaches to scalling event log to distributed workload. We'll focus on peer-to-peer variants of such: what are their advantages and disadvantages and how we can use them.
During this talk we'll cover the theory and practical implementation behind most common patterns in modern multi-threaded programming. How our everyday libraries and frameworks optimize use of operating system resources for maximum efficiency. We'll also try to understand differences between various approaches and what tradeoffs do they infer. Finally we'll take a look at how they are supported by various compilers and runtimes.
Strongly consistent databases are dominating world of software. However, with increasing scale and global availability of our services, many developers often prefer to loose their constraints in favor of an eventual consistency.
During this presentation we'll talk about Conflict-free Replicated Data Types (CRDT) - an eventually-consistent structures, that can be found in many modern day multi-master, geo-distributed databases such as CosmosDB, DynamoDB, Riak, Cassandra or Redis: how do they work and what makes them so interesting choice in highly available systems.
This is presentation from WG.NET (May 2019), where I'm discussing different aspects of virtualization, mainly in the context of programming languages. We'll covering up what stack vs. register based virtual machines are, what is interpreter and compiler and how to build our own bytecode interpreter for a toy programming language.
Slides from presentation, I've made on the BuildStuff LT 2018. Here I'm talking about issues, many people have found when using RESTful APIs and how GraphQL addresses them. Also I'm trying to cover the tradeoffs made by the standard, solutions proposed by different implementations and some ideas for the future.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
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.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
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.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
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.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
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/
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.
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.
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.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Strongly consistent databases are dominating world of software. However, with increasing scale and global availability of our services, many developers often prefer to loose their constraints in favor of an eventual consistency.
During this presentation we'll talk about Conflict-free Replicated Data Types (CRDT) - an eventually-consistent structures, that can be found in many modern day multi-master, geo-distributed databases such as CosmosDB, DynamoDB, Riak, Cassandra or Redis: how do they work and what makes them so interesting choice in highly available systems.
This is presentation from WG.NET (May 2019), where I'm discussing different aspects of virtualization, mainly in the context of programming languages. We'll covering up what stack vs. register based virtual machines are, what is interpreter and compiler and how to build our own bytecode interpreter for a toy programming language.
Slides from presentation, I've made on the BuildStuff LT 2018. Here I'm talking about issues, many people have found when using RESTful APIs and how GraphQL addresses them. Also I'm trying to cover the tradeoffs made by the standard, solutions proposed by different implementations and some ideas for the future.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
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.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
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.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
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.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
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/
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.
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.
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.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
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.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
3. What’s the problem?
Opertional Transfromations
Replicated Growable Arrays
How do we replicate?
How to optimize this thing?
How to collect garbage?
AGENDA
12. WHY NOT
JUST USE
CENTRAL
DATABASE
?
1. A single contributor can issue hundreds
of ops/min.
2. Lag cannot be visible for a naked eye.
3. We should accept periodic
disconnections, the longer the better.
4. … and maybe push the cost to the
edges?
17. OPERATIONAL
TRANSFORMATION
Alice Bob
C O N T I N O U S
ins(6, U, A)
C O N T I N U O U S
+1 +1 +1 +1 +1
C O N T I N O U S
ins(9, ?, B)
C O N T I N O U S ?
+1 +1
ins(9, ?, B)
C O N T I N U O U S
+1 +1 +1 +1 +1
18. OPERATIONAL
TRANSFORMATION
Alice Bob
C O N T I N O U S
ins(6, U, A)
C O N T I N U O U S
+1 +1 +1 +1 +1
C O N T I N O U S
ins(9, ?, B)
C O N T I N O U S ?
+1 +1
C O N T I N U O U S ?
ins(9, ?, B)
+1 +1 +1 +1 +1 +1
+1 +1
19. OPERATIONAL
TRANSFORMATION
Alice Bob
C O N T I N O U S
ins(6, U, A)
C O N T I N U O U S
+1 +1 +1 +1 +1
C O N T I N O U S
ins(9, ?, B)
C O N T I N O U S ?
+1 +1
C O N T I N U O U S ?
ins(6, U, A)ins(9, ?, B)
+1 +1 +1 +1 +1 +1
+1 +1
C O N T I N O U S ?
+1 +1
20. OPERATIONAL
TRANSFORMATION
Alice Bob
C O N T I N O U S
ins(6, U, A)
C O N T I N U O U S
+1 +1 +1 +1 +1
C O N T I N O U S
ins(9, ?, B)
C O N T I N O U S ?
+1 +1
C O N T I N U O U S ? C O N T I N U O U S ?
ins(6, U, A)ins(9, ?, B)
+1 +1 +1 +1 +1 +1
+1 +1
+1 +1
+1 +1 +1 +1 +1 +1
25. REPLICATED
GROWABLE
ARRAY
Alice Bob
C O N T I N O U S
ins(6A, U, 10A)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S
ins(9A, ?, 10B)
1A 2A 3A 4A 5A 6A 7A 8A 9A
26. REPLICATED
GROWABLE
ARRAY
Alice Bob
C O N T I N O U S
ins(6A, U, 10A)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
ins(9A, ?, 10B)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S ?
1A 2A 3A 4A 5A 6A 7A 8A 9A 10B
27. REPLICATED
GROWABLE
ARRAY
Alice Bob
C O N T I N O U S
ins(6A, U, 10A)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
ins(9A, ?, 10B)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S ?
1A 2A 3A 4A 5A 6A 7A 8A 9A 10B
ins(9A, ?, 10B)
28. REPLICATED
GROWABLE
ARRAY
Alice Bob
C O N T I N O U S
ins(6A, U, 10A)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
ins(9A, ?, 10B)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S ?
1A 2A 3A 4A 5A 6A 7A 8A 9A 10B
C O N T I N U O U S ?
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A 10B
ins(9A, ?, 10B)
29. REPLICATED
GROWABLE
ARRAY
Alice Bob
C O N T I N O U S
ins(6A, U, 10A)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
ins(9A, ?, 10B)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S ?
1A 2A 3A 4A 5A 6A 7A 8A 9A 10B
C O N T I N U O U S ?
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A 10B
ins(6A, U, 10A)ins(9A, ?, 10B)
30. REPLICATED
GROWABLE
ARRAY
Alice Bob
C O N T I N O U S
ins(6A, U, 10A)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
ins(9A, ?, 10B)
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S ?
1A 2A 3A 4A 5A 6A 7A 8A 9A 10B
C O N T I N U O U S ?
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A 10B
C O N T I N U O U S ?
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A 10B
ins(6A, U, 10A)ins(9A, ?, 10B)
34. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
35. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
36. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B)
37. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B)
10B > 10A
38. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N N U O U S
1A 2A 3A 4A 5A 6A 10B 10A 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B)
39. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N N U O U S
1A 2A 3A 4A 5A 6A 10B 10A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B) ins(6A, U, 10A)
40. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N N U O U S
1A 2A 3A 4A 5A 6A 10B 10A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B) ins(6A, U, 10A)
10A < 10B
41. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N N U O U S
1A 2A 3A 4A 5A 6A 10B 10A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B) ins(6A, U, 10A)
10A > 7A
42. REPLICATED
GROWABLE
ARRAY
INSERT AT THE SAME
POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N N O U S
1A 2A 3A 4A 5A 6A 10B 7A 8A 9A
C O N T I N N U O U S
1A 2A 3A 4A 5A 6A 10B 10A 7A 8A 9A
C O N T I N N U O U S
1A 2A 3A 4A 5A 6A 10B 10A 7A 8A 9A
ins(6A, U, 10A) ins(6A, N, 10B)
ins(6A, N, 10B) ins(6A, U, 10A)
46. REPLICATED
GROWABLE
ARRAY
INSERT AND DELETE AT
THE SAME POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
ins(6A, U, 10A) del(6A)
47. REPLICATED
GROWABLE
ARRAY
INSERT AND DELETE AT
THE SAME POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
ins(6A, U, 10A) del(6A)
48. REPLICATED
GROWABLE
ARRAY
INSERT AND DELETE AT
THE SAME POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
ins(6A, U, 10A) del(6A)
del(6A)
49. REPLICATED
GROWABLE
ARRAY
INSERT AND DELETE AT
THE SAME POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
ins(6A, U, 10A) del(6A)
del(6A)
50. REPLICATED
GROWABLE
ARRAY
INSERT AND DELETE AT
THE SAME POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
ins(6A, U, 10A) del(6A)
ins(6A, U, 10A)del(6A)
51. REPLICATED
GROWABLE
ARRAY
INSERT AND DELETE AT
THE SAME POSITION
Alice Bob
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I N U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
C O N T I N O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I O U S
1A 2A 3A 4A 5A 6A 7A 8A 9A
C O N T I U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
ins(6A, U, 10A) del(6A)
ins(6A, U, 10A)del(6A)
C O N T I U O U S
1A 2A 3A 4A 5A 6A 10A 7A 8A 9A
53. • We need to ensure that every operation
was received by every node…
• … and at the same time we cannot wait
for confirmation before displaying it.
IS THERE ANY PROBLEM?
54. • We need to ensure that every operation
was received by every node…
• … and at the same time we cannot wait
for confirmation before displaying it.
IS THERE ANY PROBLEM?
83. SEQUENCERS
Set X = 1 ts = 1
Set Y = 2 ts = 2
Set X = 3 ts = 3
Delete Y ts = 4
Set Y = 1 ts = 5
Delete X ts = 6
Monotonically incrementing counter
timeline
Node A
84. DOTS
Set X = 1 A:1
Set X = 3 A:2
Set Y = 1 A:3
Delete X A:4
timeline
Node A
Set Y = 2 B:1
Delete Y B:2
timeline
Node B
85. VECTOR
CLOCKS
Set X = 1
Set X = 3
Set Y = 1
Delete X
Node A
Set Y = 2
Delete Y
Node B
A 1
A 1
B 1
A 2
B 1 A 2
B 2
A 3
B 2
A 4
B 2