Inari has undergone a deep transformation in terms of sofware architecture, moving from Uncle Bob's Clean Architecture to a more scalable CQRS + ES architecture. This architecture very easily gave our solution the perfect traceability and scalability that we required, and we wanted to share the lessons we learnt when refactoring our solution to CQRS + ES
Blockchain Satellites - The Future of Space CommerceHasshi Sudler
Presentation made on 10/26/2020 outlining the launch of the first private blockchain into space on the Firefly Aerospace rocket planned for late December, 2020. This presentation is delivered by Hasshi Sudler and Alejandro Gomez of Villanova University and Elizabeth Kennick and Joe Latrell of Teachers In Space.
Solving the Hidden Costs of Kubernetes with ObservabilityDevOps.com
Kubernetes has enabled software organizations to realize the benefits of microservices through its convenient and powerful abstractions. Deploying, scaling, and running distributed software at scale is much easier through the use of Kubernetes.
However, these benefits have not come without costs compared to traditional software operations. Spiraling monitoring expenses, the creation of single points of human failure, and a lack of understanding of service dependencies all contribute to significant hidden costs associated with running software with Kubernetes.
In this talk, we’ll discuss how observability addresses these costs and helps you quantify and understand them. You’ll learn how new open source tools such as OpenTelemetry can help you understand performance of cloud-native software, and how you can easily get started using them today. Come be a part of the future of cloud-native observability!
Openstack Swift is a very powerful object storage that is used in several of the largest object storage deployments around the globe. It ensures a very high level of data durability and can withstand epic disasters if setup in the right way.
Blockchain technology is being touted as the Next Big Thing, seemingly capable of great feats of strength and perhaps even curing the common cold. But what exactly is it and how could it contribute to a security program? This session will describe how blockchain works, define its value proposition, and identify specific use cases where blockchain makes sense and some where it doesn't. Along the way, we will discuss similar capabilities and technologies that accomplish the objectives.
Initial presentation of swift (for montreal user group)Marcos García
Swift is an open source object storage system that provides scalable storage and retrieval of any amount of unstructured data over HTTP. It is designed to be scalable, reliable, and inexpensive for storing large amounts of unstructured data. Some key uses of Swift include storing backups, web content like images, and large scientific data objects. Swift uses a ring architecture to distribute and replicate data across multiple servers for high availability.
A presentation of KeeeX, the onty totally private, sustainable, blockchain and future ready collaboration solution.
This document supersedes and replaces the previous teaser xukih-mazav
Quantum Computers and Where to Hide from Themmapmeld
Quantum computers use quantum mechanics and qubits that can represent superpositions of 0s and 1s to potentially solve certain problems like prime factorization much faster than classical computers. While quantum computers exist in research labs today, they are still noisy and limited. This could allow them to break many current encryption methods. Researchers are working on "post-quantum crypto" algorithms like lattice-based cryptography that could be resistant even to quantum computers. Major tech companies are also starting to experiment with integrating post-quantum crypto into products and standards ahead of fully functional quantum computers.
Blockchain Satellites - The Future of Space CommerceHasshi Sudler
Presentation made on 10/26/2020 outlining the launch of the first private blockchain into space on the Firefly Aerospace rocket planned for late December, 2020. This presentation is delivered by Hasshi Sudler and Alejandro Gomez of Villanova University and Elizabeth Kennick and Joe Latrell of Teachers In Space.
Solving the Hidden Costs of Kubernetes with ObservabilityDevOps.com
Kubernetes has enabled software organizations to realize the benefits of microservices through its convenient and powerful abstractions. Deploying, scaling, and running distributed software at scale is much easier through the use of Kubernetes.
However, these benefits have not come without costs compared to traditional software operations. Spiraling monitoring expenses, the creation of single points of human failure, and a lack of understanding of service dependencies all contribute to significant hidden costs associated with running software with Kubernetes.
In this talk, we’ll discuss how observability addresses these costs and helps you quantify and understand them. You’ll learn how new open source tools such as OpenTelemetry can help you understand performance of cloud-native software, and how you can easily get started using them today. Come be a part of the future of cloud-native observability!
Openstack Swift is a very powerful object storage that is used in several of the largest object storage deployments around the globe. It ensures a very high level of data durability and can withstand epic disasters if setup in the right way.
Blockchain technology is being touted as the Next Big Thing, seemingly capable of great feats of strength and perhaps even curing the common cold. But what exactly is it and how could it contribute to a security program? This session will describe how blockchain works, define its value proposition, and identify specific use cases where blockchain makes sense and some where it doesn't. Along the way, we will discuss similar capabilities and technologies that accomplish the objectives.
Initial presentation of swift (for montreal user group)Marcos García
Swift is an open source object storage system that provides scalable storage and retrieval of any amount of unstructured data over HTTP. It is designed to be scalable, reliable, and inexpensive for storing large amounts of unstructured data. Some key uses of Swift include storing backups, web content like images, and large scientific data objects. Swift uses a ring architecture to distribute and replicate data across multiple servers for high availability.
A presentation of KeeeX, the onty totally private, sustainable, blockchain and future ready collaboration solution.
This document supersedes and replaces the previous teaser xukih-mazav
Quantum Computers and Where to Hide from Themmapmeld
Quantum computers use quantum mechanics and qubits that can represent superpositions of 0s and 1s to potentially solve certain problems like prime factorization much faster than classical computers. While quantum computers exist in research labs today, they are still noisy and limited. This could allow them to break many current encryption methods. Researchers are working on "post-quantum crypto" algorithms like lattice-based cryptography that could be resistant even to quantum computers. Major tech companies are also starting to experiment with integrating post-quantum crypto into products and standards ahead of fully functional quantum computers.
Ethereum Devcon1 Report (summary writing)Tomoaki Sato
Ethereum devcon1 in London, 27th November By Tomoaki Sato I have been to the conference, so I wrote this summary and doing presentation in Japan. The meetup name is "Smart Contract Japan". Some of the presentations are missing, or added.
Please refer these official sources also
Devcon
http://devcon.ethereum.org/
Devcon1 youtube presentations
https://www.youtube.com/user/ethereumproject
Devcon1 slides on reddit
https://www.reddit.com/r/ethereum/comments/3soym7/devcon_1_slides/
Zenko @Cloud Native Foundation London Meetup March 6th 2018Laure Vergeron
Zenko is an open source multi-cloud data controller that provides a single API and dashboard to manage data across multiple cloud storage providers. It includes features like native storage formats, policy-based data management, and metadata search. The enterprise edition adds multi-tenancy, scale-out capabilities, and file services for legacy applications. Zenko was created by Scality as an "inner startup" project to help reinvigorate innovation at the company and has since grown a developer community through meetups and hackathons.
The document describes the origin and importance of blockchain technology. It states that blockchain was first described in 1991 by Stuart Haber and W. Scott Stornetta who wanted to introduce a computationally practical solution for time-stamping digital documents. In 1992, Merkle Trees were incorporated which allows blocks to store multiple documents efficiently. However, this technology went unused until the Bitcoin whitepaper in 2008 sparked new interest in blockchain. The document then lists three reasons why blockchain is important to learn: growing job prospects, positioning yourself at the forefront of change, and how blockchain will revolutionize industries like banking, supply chain, and more.
This document discusses web application architecture and frameworks. It argues that frameworks should not dictate project structure, and that the code should separate domain logic from infrastructure logic. This allows focusing on the core problem domain without concerning itself with technical details like databases or web requests. It also advocates splitting code into ports that define intentions like persistence, and adapters that provide framework-specific implementations, allowing for independence of the domain logic from any particular framework or technology. This architecture, known as hexagonal or ports and adapters, facilitates testing, replacement of parts, and future-proofing of the application.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2lGNybu.
Stefan Krawczyk discusses how his team at StitchFix use the cloud to enable over 80 data scientists to be productive. He also talks about prototyping ideas, algorithms and analyses, how they set up & keep schemas in sync between Hive, Presto, Redshift & Spark and make access easy for their data scientists, etc. Filmed at qconsf.com..
Stefan Krawczyk is Algo Dev Platform Lead at StitchFix, where he’s leading development of the algorithm development platform. He spent formative years at Stanford, LinkedIn, Nextdoor & Idibon, working on everything from growth engineering, product engineering, data engineering, to recommendation systems, NLP, data science and business intelligence.
Deconstructing Monoliths with Domain Driven DesignVMware Tanzu
SpringOne Platform 2017
David Turanski, Pivotal; Rohit Sood, Liberty Mutual; Rohit Kelapure, Pivotal; Justin Stone, Liberty Mutual
This session will detail a synthesis of techniques used to destroy a monolithic BPM and orchestration based application at Liberty Mutual into an event driven microservices based architecture implemented with Event Sourcing and CQRS. The transformation and developer productivity affected by the monolith decomposition and alignment of business capabilities to bounded contexts teaches lessons for all enterprises looking to undergo similar changes.
This document discusses implementing event sourcing in .NET. It provides an overview of event sourcing and CQRS, noting that events capture past occurrences that affect the domain. A demo is shown of a sample event sourcing application using NServiceBus for messaging. The document recommends buying rather than building event store and messaging toolkit components, and lists options for each including SQL Server, MongoDB, RavenDB, MSMQ, NEventStore, and NServiceBus.
One of the main advantages of PHP is that it allows you and your company to build up projects in no time and with immediate feedback and business value. Sometimes, however, fast growth and unprevented complexities could make your codebase more and more difficult to manage as time passes and new features are added.Domain Driven Design can be an elegant solution to the problem, but introducing it in mid-large sized projects is not always easy: you have to deal with difficulties at technical, team and knowledge levels. This talk focuses on how to approach the change in your codebase and in your team mindset without breaking legacy code or stopping the development in favor of neverending refactoring sessions.
Ever wonder how some applications are built? Ever wonder how to combine components of the Windows Azure platform? Stop wondering and learn how we’ve built MyGet.org, a multi-tenant software-as-a-service. In this session we’ll discuss architecture, commands, events, access control, multi tenancy and how to mix and match those things together. Learn about the growing pains and misconceptions we had on the Windows Azure platform. The result just may be a reliable, cost-effective solution that scales.
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB
Presented by: Aydrian Howard
Developer Advocate, MongoDB
MongoDB Stitch is a serverless platform designed to help you easily and securely build an application on top of MongoDB Atlas. It lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastructure. MongoDB Stitch also makes it simple to respond to backend changes immediately, allowing you to simplify client side code and build complex flows more easily. This talk will cover ways that MongoDB Stitch helps you respond to changes in your database and take your applications to the next level.
This document provides an overview of blockchain technology and distributed ledger technology. It defines key concepts like Bitcoin, Ethereum, permissioned and permissionless ledgers. It also describes popular blockchain platforms like Hyperledger Fabric and different aspects of blockchain like shared ledgers, smart contracts, permissions and consensus. The document concludes with instructions on setting up a Hyperledger Fabric blockchain network.
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloITCamp
The document summarizes Andrea Saltarello's presentation on implementing CQRS and event sourcing patterns on Azure. The presentation included a recap of CQRS and event sourcing, demonstrations of aggregates, handlers and read models, and discussions of deployment options on Azure including n-tiered and full-stack approaches. It also covered technology considerations and options for event buses, event stores and economic comparisons of Azure computing services.
Domain driven design: a gentle introductionAsher Sterkin
This document provides an overview of Domain-Driven Design (DDD) concepts including:
- The common language shared between domain experts and software developers.
- Using models to capture the semantics of the domain language.
- Identifying multiple domain models with clear boundaries and mappings between them.
- Nesting boundaries at different levels of granularity such as sub-domains, bounded contexts, and aggregates.
- Key DDD patterns like entities, values, events, commands, and aggregates.
Building Reactive Real-time Data PipelineTrieu Nguyen
Topic: Building reactive real-time data pipeline at FPT ?
1) What is “Data Pipeline” ?
2) Big Data Problems at FPT
+ VnExpress: pageview and heat-map
+ eClick: real-time reactive advertising
3) Solutions and Patterns
4) Fast Data Architecture at FPT
5) Wrap up
The document discusses how NOAA's Space Weather Prediction Center transitioned from a monolithic architecture to microservices using Docker. It describes how they started with a small verification project, then replaced their critical GOES satellite data source. This improved developers' morale and delivery speed. They encountered some security issues initially but learned from them. The transition was very successful and allowed them to quickly expand their mission to forecast aviation impacts using scientists' models packaged as Docker services.
Next Gen Data Modeling in the Open Data Platform With Doron Porat and Liran Y...HostedbyConfluent
Next Gen Data Modeling in the Open Data Platform With Doron Porat and Liran Yogev | Current 2022
At Yotpo, we have a rich and busy data lake consisting of thousands of data sets ingested and digested by different engines, the main one being Spark.
We built our data infrastructure to enable our users to produce and consume data via self-service tooling, giving them the utmost freedom.
This freedom came with a cost.
We had trouble with bad standardization, little data reusability, lack of data lineage, and flaky data sets.
We also witnessed the landscape under which we built our platform change dramatically and so have our analytics needs and expectations.
We came to an understanding that the modeling layer should be decoupled from the execution layer in order to get rid of the limitations we were bounded by -
Batch and stream should be no more than attributes as part of a wider abstraction
A Kafka topic and a data lake table are no different and should be treated the same way
Observability of our data pipelines should have the same quality and depth across all execution engines, storage methods, and formats
Governance should be an implicit part of our ecosystem to serve as a basis for both exploration and automation/anomaly detection
That's when we started building YODA (soon to be open sourced) that gives us killer dev experience with the level of abstraction we always dreamed of.
Combining DBT, Databricks, lakeFS, and a multitude of streaming engines - we started seeing our vision come to life.
In this talk, we'll share from our journey redesigning the data lake, and how to best address organizational needs, without having to give up on high-end tooling and technology. We are taking this to the next level.
Code Refactoring or Rewrite: How to Properly Dispose of Legacy CodeRoman Labunsky
Legacy code, that old piece of software no one wants to touch, no one knows who wrote it and everyone’s afraid to replace it. Every developer has experienced that gut wrenching feeling of having to dig into an old code component to extend it or fix a bug. Best case scenario it’s an obscure piece of code that’s responsible for a minor part of your product, worst case, it’s the core of your business.
In this CODE Components Meetup, Roman Labunsky talks about Code Rewriting vs. Code Refactoring and explain the pros and cons of each method and when to use each.
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
Ethereum Devcon1 Report (summary writing)Tomoaki Sato
Ethereum devcon1 in London, 27th November By Tomoaki Sato I have been to the conference, so I wrote this summary and doing presentation in Japan. The meetup name is "Smart Contract Japan". Some of the presentations are missing, or added.
Please refer these official sources also
Devcon
http://devcon.ethereum.org/
Devcon1 youtube presentations
https://www.youtube.com/user/ethereumproject
Devcon1 slides on reddit
https://www.reddit.com/r/ethereum/comments/3soym7/devcon_1_slides/
Zenko @Cloud Native Foundation London Meetup March 6th 2018Laure Vergeron
Zenko is an open source multi-cloud data controller that provides a single API and dashboard to manage data across multiple cloud storage providers. It includes features like native storage formats, policy-based data management, and metadata search. The enterprise edition adds multi-tenancy, scale-out capabilities, and file services for legacy applications. Zenko was created by Scality as an "inner startup" project to help reinvigorate innovation at the company and has since grown a developer community through meetups and hackathons.
The document describes the origin and importance of blockchain technology. It states that blockchain was first described in 1991 by Stuart Haber and W. Scott Stornetta who wanted to introduce a computationally practical solution for time-stamping digital documents. In 1992, Merkle Trees were incorporated which allows blocks to store multiple documents efficiently. However, this technology went unused until the Bitcoin whitepaper in 2008 sparked new interest in blockchain. The document then lists three reasons why blockchain is important to learn: growing job prospects, positioning yourself at the forefront of change, and how blockchain will revolutionize industries like banking, supply chain, and more.
This document discusses web application architecture and frameworks. It argues that frameworks should not dictate project structure, and that the code should separate domain logic from infrastructure logic. This allows focusing on the core problem domain without concerning itself with technical details like databases or web requests. It also advocates splitting code into ports that define intentions like persistence, and adapters that provide framework-specific implementations, allowing for independence of the domain logic from any particular framework or technology. This architecture, known as hexagonal or ports and adapters, facilitates testing, replacement of parts, and future-proofing of the application.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2lGNybu.
Stefan Krawczyk discusses how his team at StitchFix use the cloud to enable over 80 data scientists to be productive. He also talks about prototyping ideas, algorithms and analyses, how they set up & keep schemas in sync between Hive, Presto, Redshift & Spark and make access easy for their data scientists, etc. Filmed at qconsf.com..
Stefan Krawczyk is Algo Dev Platform Lead at StitchFix, where he’s leading development of the algorithm development platform. He spent formative years at Stanford, LinkedIn, Nextdoor & Idibon, working on everything from growth engineering, product engineering, data engineering, to recommendation systems, NLP, data science and business intelligence.
Deconstructing Monoliths with Domain Driven DesignVMware Tanzu
SpringOne Platform 2017
David Turanski, Pivotal; Rohit Sood, Liberty Mutual; Rohit Kelapure, Pivotal; Justin Stone, Liberty Mutual
This session will detail a synthesis of techniques used to destroy a monolithic BPM and orchestration based application at Liberty Mutual into an event driven microservices based architecture implemented with Event Sourcing and CQRS. The transformation and developer productivity affected by the monolith decomposition and alignment of business capabilities to bounded contexts teaches lessons for all enterprises looking to undergo similar changes.
This document discusses implementing event sourcing in .NET. It provides an overview of event sourcing and CQRS, noting that events capture past occurrences that affect the domain. A demo is shown of a sample event sourcing application using NServiceBus for messaging. The document recommends buying rather than building event store and messaging toolkit components, and lists options for each including SQL Server, MongoDB, RavenDB, MSMQ, NEventStore, and NServiceBus.
One of the main advantages of PHP is that it allows you and your company to build up projects in no time and with immediate feedback and business value. Sometimes, however, fast growth and unprevented complexities could make your codebase more and more difficult to manage as time passes and new features are added.Domain Driven Design can be an elegant solution to the problem, but introducing it in mid-large sized projects is not always easy: you have to deal with difficulties at technical, team and knowledge levels. This talk focuses on how to approach the change in your codebase and in your team mindset without breaking legacy code or stopping the development in favor of neverending refactoring sessions.
Ever wonder how some applications are built? Ever wonder how to combine components of the Windows Azure platform? Stop wondering and learn how we’ve built MyGet.org, a multi-tenant software-as-a-service. In this session we’ll discuss architecture, commands, events, access control, multi tenancy and how to mix and match those things together. Learn about the growing pains and misconceptions we had on the Windows Azure platform. The result just may be a reliable, cost-effective solution that scales.
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB
Presented by: Aydrian Howard
Developer Advocate, MongoDB
MongoDB Stitch is a serverless platform designed to help you easily and securely build an application on top of MongoDB Atlas. It lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastructure. MongoDB Stitch also makes it simple to respond to backend changes immediately, allowing you to simplify client side code and build complex flows more easily. This talk will cover ways that MongoDB Stitch helps you respond to changes in your database and take your applications to the next level.
This document provides an overview of blockchain technology and distributed ledger technology. It defines key concepts like Bitcoin, Ethereum, permissioned and permissionless ledgers. It also describes popular blockchain platforms like Hyperledger Fabric and different aspects of blockchain like shared ledgers, smart contracts, permissions and consensus. The document concludes with instructions on setting up a Hyperledger Fabric blockchain network.
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloITCamp
The document summarizes Andrea Saltarello's presentation on implementing CQRS and event sourcing patterns on Azure. The presentation included a recap of CQRS and event sourcing, demonstrations of aggregates, handlers and read models, and discussions of deployment options on Azure including n-tiered and full-stack approaches. It also covered technology considerations and options for event buses, event stores and economic comparisons of Azure computing services.
Domain driven design: a gentle introductionAsher Sterkin
This document provides an overview of Domain-Driven Design (DDD) concepts including:
- The common language shared between domain experts and software developers.
- Using models to capture the semantics of the domain language.
- Identifying multiple domain models with clear boundaries and mappings between them.
- Nesting boundaries at different levels of granularity such as sub-domains, bounded contexts, and aggregates.
- Key DDD patterns like entities, values, events, commands, and aggregates.
Building Reactive Real-time Data PipelineTrieu Nguyen
Topic: Building reactive real-time data pipeline at FPT ?
1) What is “Data Pipeline” ?
2) Big Data Problems at FPT
+ VnExpress: pageview and heat-map
+ eClick: real-time reactive advertising
3) Solutions and Patterns
4) Fast Data Architecture at FPT
5) Wrap up
The document discusses how NOAA's Space Weather Prediction Center transitioned from a monolithic architecture to microservices using Docker. It describes how they started with a small verification project, then replaced their critical GOES satellite data source. This improved developers' morale and delivery speed. They encountered some security issues initially but learned from them. The transition was very successful and allowed them to quickly expand their mission to forecast aviation impacts using scientists' models packaged as Docker services.
Next Gen Data Modeling in the Open Data Platform With Doron Porat and Liran Y...HostedbyConfluent
Next Gen Data Modeling in the Open Data Platform With Doron Porat and Liran Yogev | Current 2022
At Yotpo, we have a rich and busy data lake consisting of thousands of data sets ingested and digested by different engines, the main one being Spark.
We built our data infrastructure to enable our users to produce and consume data via self-service tooling, giving them the utmost freedom.
This freedom came with a cost.
We had trouble with bad standardization, little data reusability, lack of data lineage, and flaky data sets.
We also witnessed the landscape under which we built our platform change dramatically and so have our analytics needs and expectations.
We came to an understanding that the modeling layer should be decoupled from the execution layer in order to get rid of the limitations we were bounded by -
Batch and stream should be no more than attributes as part of a wider abstraction
A Kafka topic and a data lake table are no different and should be treated the same way
Observability of our data pipelines should have the same quality and depth across all execution engines, storage methods, and formats
Governance should be an implicit part of our ecosystem to serve as a basis for both exploration and automation/anomaly detection
That's when we started building YODA (soon to be open sourced) that gives us killer dev experience with the level of abstraction we always dreamed of.
Combining DBT, Databricks, lakeFS, and a multitude of streaming engines - we started seeing our vision come to life.
In this talk, we'll share from our journey redesigning the data lake, and how to best address organizational needs, without having to give up on high-end tooling and technology. We are taking this to the next level.
Code Refactoring or Rewrite: How to Properly Dispose of Legacy CodeRoman Labunsky
Legacy code, that old piece of software no one wants to touch, no one knows who wrote it and everyone’s afraid to replace it. Every developer has experienced that gut wrenching feeling of having to dig into an old code component to extend it or fix a bug. Best case scenario it’s an obscure piece of code that’s responsible for a minor part of your product, worst case, it’s the core of your business.
In this CODE Components Meetup, Roman Labunsky talks about Code Rewriting vs. Code Refactoring and explain the pros and cons of each method and when to use each.
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
DDS Security Version 1.2 was adopted in 2024. This revision strengthens support for long runnings systems adding new cryptographic algorithms, certificate revocation, and hardness against DoS attacks.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Event sourcing and CQRS: Lessons from the trenches
1. Event sourcing and CQRS:
Lessons from the trenches
(Bonus: with Blockchain)
David Jiménez Martínez
davigetto@gmail.com
http://www.linkedin.com/in/davjim/
http://github.com/Rydra/
inari.io
2. ●
Assuming certain knowledge of what CQRS
and ES are
●
Based on our experience
●
“What you see and learn is what you
believe”
●
No zealotry. Software development is
more of an art, a craftmanship, than a
science. Your craft will be diferent than
my craft probably.
●
Feedback is a gift which improves your
craft
About this talk...
3. ●
Lead developer/Chief architect @ Inari
●
Created Melange, an OSS infrastructure
messaging library written in python to
create event-driven, distributed
architectures
●
(https://github.com/Rydra/melange)
– Used in 21Buttons (social network with
high concurrency), Inari (insurtech high-
traceability application supported by AI
and blockchain)
●
An ex .NET developer who found love in
Python and DDD
Who am I?
5. ●
CQRS is an architectural pattern coined by Greg Young
– More info: https://martinfowler.com/bliki/CQRS.html
– In fact it is very simple: Commands (state-changing operations) are separated from
queries (retrieve-only operations). They can have a diferent technology stack and
patterns (and they might live in the same monolith if you see it ft, but the concept is
free from any specifc infrastructure implementation).
– My ELI5 explanation: (usually) you have at least two databases, one to write, and one
to read quickly/do searches (which gets updated some time after the other database
gets written).
●
(In the case of Inari, Blockchain and Postgres/Elasticsearch)
CQRS
7. ●
Event sourcing is a technique in which, instead of persisting the current state of
an aggregate root, you persist the events that have happened for that aggregate.
●
This concept and its application has MASSIVE implications in terms of
architecture and implementation when refactoring (as we are going to see)
Event sourcing
9. ●
We were following the Clean Architecture (the architecture proposed by Uncle
Bob)
●
ELI5: Make the use case/interactor the central part of your system and the main
entry point for your domain. From that point forward, and with the help of
dependency injection, you would coordinate your domain
entities/repositories/services, shielding your domain and business rules (the real
value of your application) from volatile details like framework, IO...
Clean architecture
12. ●
TERRAIN SCOUT:
– Requirement: as an InsurTech, our solution requires high traceabililty and
auditability. Every event, every action needs to be recorded in our platform.
– Requirement: we need to provide an historic of everything that has happened in the
application, for each aggregate root.
– Requirement: Our tech stack is backed up by Blockchain. Blockchain is a
decentralized, IMMUTABLE database, very hard to hack or manipulate (once you
write there you cannot rewrite or delete data).
ES: The objectives of this war
14. ●
The promised land:
– It could bring us the high traceability and auditability that we need!
– It could help us defne clearly the events of our system (trust me, giving names and
defne the events of our domain was a big challenge). Refer to Event Storming.
– It could help us separate better the diferent aggregate roots of our domain.
– It could help us making migrations easier.
– It could favor the CQS we were looking for (Fine tune performance in both read side
and write side separately)
ES: The treasure we’re hunting
17. ●
We were following the Clean Architecture
●
Our interactors: e.g. GetProductInteractor, GetCompanyInteractor,
RejectProductInteractor, AddPaymentInteractor…
●
Our entities were classic OO classes with behaviour (and some events thrown
here and there). Repository pattern to abstract persistence.
●
Storage technologies: blockchain (where we were storing jsons with the data)
and postgres (where we would store the same data and make searches there).
What we were before...
21. We know our status quo, and we know where we want to be. Let’s design a
strategy!
What we were before...
22. ●
We started with the main, central aggregate of our application: the Product
– The aggregate root should orchestrate all behaviour. And each, every single
state-modifying method must result in one or several event objects
(logic, otherwise we would not be able to reconstitute this object again).
– Every event relevant to the aggregate should have a method to
reconstitute internal data from the event (called mutator)
– NOTE: No need to move every aggregate to be event sourced at once!
Moving to ES: The strategy
23. – An event-sourced aggregate needs to alter its constructor: it should only
receive a single parameter, the event stream (which is no more than an
array of events with a version number for optimistic concurrency)
– The constructor would then rehydrate the properties of the object
through the events
– Once the aggregate is in position, the repository should also change to be
able to store the events into the blockchain (our event store)
Moving to ES: The strategy
24. ●
Baby steps:
1) First, remodel internally the aggregate without touching the constructor (BIGGEST
step by far)
2) Then, transform blockchain into an event store and save the events into the it (while
still saving the data in the old way)
3) Remodel the constructor to accept an EventStream instead of a list of properties to
fll
4) Change callers
Moving to ES: The tactics
25. ●
Baby steps:
1) First, remodel internally the aggregate without touching the constructor
(BIGGEST step by far)
2) Then, save the events into the blockchain in the form of events while still saving the
data in the old way
3) Remodel the constructor to accept an EventStream instead of a list of properties to
fll.
4) Change callers
Moving to ES: The war
28. ●
It forced us, for every state-changing method, to think of a suitable event and
a name for it and make it explicit in our code
●
Great help in expanding our ubiquitous language with new terms and even
realize some design/requirement mistakes
●
The Product entity turned out to be a little more complex and less stream-
lined than before from our POV, (maybe because we are not yet used to that
thing, like a lot of things in life?)
Moving to ES: The war
29. ●
Baby steps:
1) First, remodel internally the aggregate without touching the constructor (BIGGEST
step by far)
2) Then, transform blockchain into an event store and save the events into the it
(while still saving the data in the old way)
3) Remodel the constructor to accept an EventStream instead of a list of properties to
fll.
4) Change callers
Moving to ES: The war
32. ●
Save the events into the blockchain in the form of events while still saving the
data in the old way
– We needed to make serializers for each event in the system (serialize the
events to json)
– Still save the data in the old format elsewhere (postgres + a huge horrible
json into another blockchain setup)
– The repository pattern helped us to mask the access to the event store (and
therefore not coupling too much the technology stack with our business
domain)
Moving to ES: The war
33. ●
Baby steps:
1) First, remodel internally the aggregate without touching the constructor (BIGGEST
step by far)
2) Then, transform blockchain into an event store and save the events into the it (while
still saving the data in the old way)
3) Remodel the constructor to accept an EventStream instead of a list of
properties to fll.
4) Change callers
Moving to ES: The tactics
35. ●
Remodel the constructor to accept an EventStream instead of a list of
properties to fll
– Changing the constructor was easy… the hard part was to change all the callers.
Relied on the Factory method pattern to solve and refactor this
– Unit/Integration testing the aggregate became a little bit diferent. When
constructing it, you build it in terms of the events that happened for it instead of the
value of the properties you want to supply. Once again, we relied on factory methods
to simplify building event sourced aggregates
– For unit testing we added assertions where we would check that a certain/s event/s
were raised
Moving to ES: The war
36. ●
Better domain and ubiquitous language thanks to be able to properly defne good
event names and defne new ones.
●
Better aggregate isolation
●
Free timeline/historic functionality for the aggregate
●
Forced us to think more in terms of Queries and Commands (CQRS). We are slowly
translating and isolating our interactors between commands (which execute
behaviours and write into blockchain) and queries (which we fne-tune and couple it a
bit more to our storage solution to ofer maximum performance)
●
The solution is a bit more complex, but nothing otherworldly once you have the
infrastructure in motion
●
Moving the Product aggregate was a success, so we can continue moving other
aggregates
Aftermath...
37. ●
Yeah, blockchain is immutable. You cannot delete data from it, you cannot
update data… YOU CANNOT DO MIGRATIONS ON IT!
●
What if you want to do a refactor in your source code (like changing property
names of events, create new ones, delete some of them, etc…?)
– We used Protocol Bufers (from Google). Protobuf ofers backwards compatibility
with message serialization (one part of what we needed).
– New data = create scripts to add new events to correct any desynchronizations.
– Yeah, those “correcting events” need to be considered by your aggregate.
●
Other complex techniques: Upcasting
Moving to ES: But… Postwar
38. ●
Performance
– If you have a lot of events for each aggregate… This could hurt performance!
– Snapshots
– For the time being we are not dealing with a huge amount of events per aggregate
(100 at most), so we are surviving the storm for now without snapshooting.
Moving to ES: But… Postwar
39. ●
Not really unless you have either big concurrency (e.g. a social network) or
high traceability and auditability requirements
●
Though it helps a ton in improving the ubiquitous language through the forced
extensive use of events
Would I recommend CQRS + ES?
40. ●
Microservices: one single, central event store vs one event store per service?
– “Should the book of your history be written in a single book or distributed in several
ones?”
– Possible implementations? Is there any silver bullet or are there any good solutions?
Next challenges for Inari
41. ●
Implementing Domain Driven Design (Vaughn Vernon)
●
Clean Architecture (Robert C. Martin)
●
Protocol Bufers vs Apache Thrift (https://es.slideshare.net/IgorAnishchenko/pb-vs-thrift-vs-avro)
●
Event sourcing versioning (Greg Young) (https://leanpub.com/esversioning)
●
Implementing Event sourcing in Python (
https://breadcrumbscollector.tech/implementing-event-sourcing-in-python-part-1-aggregates/)
●
Event sourcing in Python (https://hackernoon.com/1-year-of-event-sourcing-and-cqrs-fb9033ccd1c6)
●
Clean architecture in Python (https://speakerdeck.com/enforcer/clean-architecture-in-python?slide=30)
●
Melange, a messaging library written in Python to create event driven, distributed applications and
microservices (https://github.com/Rydra/melange)
Bibliography