This document discusses event sourcing for React-Redux applications. It introduces event sourcing and how it can be used to store application data and state changes as a sequence of immutable events. It describes using event sourcing with projections to update views and using command and query services to write events to the database and read/update projections. It provides examples of implementing event sourcing for a permit collection reducer and connecting the state to React components.
EventBus is an open source Android library that simplifies communication between activities, fragments, threads, services, with less code, better quality.
Firebase is a mobile and web application platform with tools and infrastructure designed to help developers build high-quality apps. Firebase is made up of complementary features that developers can mix-and-match to fit their needs.
Azure Functions Hands-on lab | Global Azure Bootcamp | Radu VunvuleaRadu Vunvulea
What are Azure Functions? AWS Lambda from Azure. This is the fastest way how we can present Azure Functions. Durring this workshop we will have a challenge cu create a system that can process and analyze data without VMs or other compution units. We will use only Azure Functions for it.
We're leveraging and Understanding AWS Cognito Identity Pool, and also we're going to look upon how we can implement and Integrate the same with SAM and in our Frontend application - BookStore.
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CodeOps Technologies LLP
In this talk people will get to know how we can use change feed feature of Cosmos DB and use azure functions and signal or service to develop a real time dashboard system
Event-Sourcing your React-Redux applications - Maurice de Beijer - Codemotion...Codemotion
Most React-Redux applications store the work in progress as is in a database. It is fine to treat objects like this in a small application. But this is not optimal when applications are complex. Prefer the CQRS design pattern for more complex applications. Combining this with Event-Sourcing is an even more powerful solution. Event-Sourcing ensures that every action is stored as a separate domain event. These domain events are the CQRS write model. These events also project into a secondary database. This projection builds the CQRS read model for the application.
EventBus is an open source Android library that simplifies communication between activities, fragments, threads, services, with less code, better quality.
Firebase is a mobile and web application platform with tools and infrastructure designed to help developers build high-quality apps. Firebase is made up of complementary features that developers can mix-and-match to fit their needs.
Azure Functions Hands-on lab | Global Azure Bootcamp | Radu VunvuleaRadu Vunvulea
What are Azure Functions? AWS Lambda from Azure. This is the fastest way how we can present Azure Functions. Durring this workshop we will have a challenge cu create a system that can process and analyze data without VMs or other compution units. We will use only Azure Functions for it.
We're leveraging and Understanding AWS Cognito Identity Pool, and also we're going to look upon how we can implement and Integrate the same with SAM and in our Frontend application - BookStore.
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CodeOps Technologies LLP
In this talk people will get to know how we can use change feed feature of Cosmos DB and use azure functions and signal or service to develop a real time dashboard system
Event-Sourcing your React-Redux applications - Maurice de Beijer - Codemotion...Codemotion
Most React-Redux applications store the work in progress as is in a database. It is fine to treat objects like this in a small application. But this is not optimal when applications are complex. Prefer the CQRS design pattern for more complex applications. Combining this with Event-Sourcing is an even more powerful solution. Event-Sourcing ensures that every action is stored as a separate domain event. These domain events are the CQRS write model. These events also project into a secondary database. This projection builds the CQRS read model for the application.
Code first in the cloud: going serverless with AzureJeremy Likness
The popularity of microservices combined with the emergence of serverless based solutions has transformed how modern developers tackle cloud native apps. Microsoft's Azure cloud provides a feature known as serverless functions (including Azure Functions and Logic Apps) that enable developers to stand up integrated end points leveraging the programming language of their choice without having to worry about the supporting infrastructure. Learn how to develop serverless .NET apps and connect them with queues, web requests, and databases or seamlessly integrate with third-party APIs like Twitter and Slack.
A walk through of how Microsoft Azure could platform can be a powerful tool for solution designing, proof of concepts and performance testing. Leverage Azure capabilities and technologies in early development phases in dev/test scenarios without heavy dependence of IT support. Azure can be a DIY model for quick prototyping and gaining visibility into material solution design and architectures.
Azure is a great place for all your Java. Microsoft Java experts lead a grand tour of Java on Azure. Learn how to reach cloud-scale with cloud-native innovation for enterprise Java applications.
Java on Your Terms with Azure
Decomposing the Monolith (Riga Dev Days 2019)Dennis Doomen
A micro-service architecture is a great strategy for decomposing a monolith. In this talk, I’ll show you some of the pros and cons of micro-services and how you can leverage OWIN, .NET, Event Sourcing and the Onion Architecture to gradually move your monolith into a bright new future.
If I have to name a single hype in software architecture land then I would have to mention the micro-service architecture. Micro-services are supposed to be small, have a very focused purpose, can be deployed independently, are completely self-supporting and loosely coupled. Ideally, micro-services are technology agnostic, but hey, we’re in the .NET space, aren’t we? And they are not a goal, but a means to an end. In fact, a micro-service architecture has many benefits and are a great strategy for decomposing a monolith. So how do you build a micro-service? What technologies does the .NET realm offer for us? And what if you don’t want to deploy them independently? In this talk, I’ll show you some of the pros and cons of micro-services and how you can leverage OWIN, .NET, Event Sourcing and the Onion Architecture to gradually move your monolith into a bright new future.
Azure Cloud Application Development Workshop - UGIdotNETLorenzo Barbieri
Based on Global Black Belt Azure CAD Workshop, this material was used during ugidotnet.org CAD Lab in June 2017.
Azure VMs, AppService, Functions, Logic Apps and Service Fabric were demoed during the day.
Applying Advanced Techniques to Azure Web AppsRoy Kim
A lap around 4 advanced techniques or services to complement an Azure Web App solution.
Application Gateway with Web Application Firewall
Azure SQL VNet Integration with (ASE v2)
Azure CDN
Auto Scale & Visual Studio Load Testing
VMware vFabric - Webinar with CIO MagazineAl Sargent
This presentation covers four things:
1. Why every business is a software business
2. The clear trends with VMware vFabric customers and prospects
3. Cloud Scale and Economics
4. Pricing Comparisons of vFabric to Competitors
Read an article summarizing the presentation and access the recording here: http://blogs.vmware.com/vfabric/2012/11/why-is-vfabric-on-the-cio-agenda-trends-and-economics.html
Similar to Event-Sourcing your React-Redux applications (20)
In this hands-on workshop, Maurice will personally guide you through a series of exercises designed to empower you with a deep understanding of React Server Components and the power of TypeScript. Discover how to optimize your applications, improve performance, and unlock new possibilities.
Maurice will virtually be by your side, offering comprehensive guidance and answering your questions as you navigate each exercise. By the end of the workshop, you'll have mastered React Server Components, armed with a newfound arsenal of TypeScript knowledge to supercharge your React applications.
Don't miss this opportunity to elevate your React expertise to new heights. Join our workshop and unlock the potential of React Server Components with TypeScript. Your apps will thank you.
Let's face the facts and admit it: Estimating how long it will take to build software is hard.
Why is estimation so hard? Well there are some reasons for that. Many people tend to be optimistic about how long it will take to do a task. Not surprising when we learn the way memory works. It tends to skew our experiences from old projects. We often forget the many small setbacks encountered. Another reason is that many tasks are not included in the initial estimate. They only become visible over time.
Does that mean that estimation is impossible and a waste of time?
Not at all. Many software development activities are commercial activities. Starting something without even a rough estimate of what the costs and timeline will be is risky at best.
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressMaurice De Beijer [MVP]
Tired of having users email you that your Svelte application is broken? Turns out that building reliable applications is hard and requires a lot of testing. You can write unit tests but quite often these all pass and the application is still broken. Why? Because they test parts of the application in isolation. But for a reliable application we need more. We need to make sure that all parts, including the backend API’s, work together as intended.
Cypress is a great tool to achieve this. It will test you complete web application in the browser and use it like a real world user would. In this session Maurice will show you how to use Cypress during development and on the CI server with Svelte. He will share tips and tricks to make your tests more resilient and more like how an actual end user would behave.
Tired of having users email you that your web application is broken? Turns out that building reliable web applications is hard and requires a lot of testing. You can write unit tests but quite often these all pass and the application is still broken. Why? Because they test parts of the application in isolation. But for a reliable application we need more. We need to make sure that all parts work together as intended.
Cypress is a great tool to achieve this. It will test you complete web application in the browser and use it like a real user would. In this session Maurice will show you how to use Cypress during development and on the CI server. He will share tips and tricks to make your tests more resilient and more like how an actual end user would behave.
Building a small to medium size business application with React isn't terribly hard. It has been done lots of times and there is plenty of information about what works and what doesn't. However building a large, complex and mission critical application with React is another matter. How to configure reliable hosting on Azure for the front and back-end? How to track runtime errors that happen in the browser. And how to create an efficient workflow between front and back-end teams. In this session Maurice de Beijer will share his experiences in building a globally deployed application that is used by thousands of people who depend on the availability and proper functioning of the application for a safe work environment.
https://azconf.dev/
With the release of React 18 we finally get the long awaited concurrent rendering. But how is that going to affect your application? What are the benefits of concurrent rendering in React? What do you need to do to switch to concurrent rendering when you upgrade to React 18? And what if you don’t want or can’t use concurrent rendering yet?
There are some behavior changes you need to be aware of! In this workshop we will cover all of those subjects and more.
Join me with your laptop in this interactive workshop. You will see how easy it is to switch to concurrent rendering in your React application. You will learn all about concurrent rendering, SuspenseList, the startTransition API and more.
https://reactadvanced.com/workshops-3h
Building a small to medium size business application with React isn't terribly hard. It has been done lots of times and there is plenty of information about what works and what doesn't. However building a large, complex, distributed and mission critical application with React is another matter. Add occasional poor mobile connectivity and things become really challenging. That doesn't mean that it is impossible, it is just harder to architect and develop. In this session Maurice de Beijer will share his experiences in building a globally deployed application that is used by thousands of people who depend on the availability and proper functioning of the application for a safe work environment.
https://www.c-sharpcorner.com/events/react-virtual-conference2
Building a small to medium size business application with React isn't terribly hard. It has been done lots of times and there is plenty of information about what works and what doesn't. However building a large, complex, distributed and mission critical application with React is another matter. Add occasional poor mobile connectivity and things become really challenging. That doesn't mean that it is impossible, it is just harder to architect and develop. In this session Maurice de Beijer will share his experiences in building a globally deployed application that is used by thousands of people who depend on the availability and proper functioning of the application for a safe work environment.
https://www.meetup.com/nl-NL/tilburg-tech-tuesdays/events/277150883/
Een kleine React applicatie bouwen met een backend is niet moeilijk. Maar wat als de applicatie groter en complexer wordt? Dan wordt het een ander verhaal. En al helemaal als het een publiek toegankelijke applicatie is.
Plotseling blijkt dat allerlei vaak gedane aannames niet meer kloppen. Je krijgt te maken met netwerkstoringen en schaalbaarheid. Verschillende teams die onafhankelijk van elkaar aan de front- en backend werken. Runtime fouten die optreden omdat sommige browsers toch net even anders blijken te werken dan je verwacht.
In deze sessie gaat Maurice de Beijer zijn ervaringen delen over hoe je dit aan kan pakken.
The React team rewrote the book on developing components. Before we had a choice between classes and functional components. Yet many components needed to be classes. A functional component was often too limited. Now, using hooks, we can extend functional components to be as powerful as we want.
Suspense and asynchronous rendering is in the future of React. It will make large applications much more responsive and easier to deal with. Getting started with suspense and asynchronous rendering isn't hard as you will discover.
Come to this session to learn what React hooks are and how to get started using hooks. But be warned, once seen React hooks can’t be unseen and your React components will never be the same again.
Tired of having users email you that your web application is broken? Turns out that building reliable web applications is hard and requires a lot of testing. You can write unit tests but quite often these all pass and the application is still broken. Why? Because they test parts of the application in isolation. But for a reliable application we need more. We need to make sure that all parts work together as intended.
Cypress is a great tool to achieve this. It will test you complete web application in the browser and use it like a real user would. In this session Maurice will show you how to use Cypress during development and on the CI server. He will share tips and tricks to make your tests more resilient and more like how an actual end user would behave.
React keeps on evolving and making hard things easier for the average developer.
One case, where React was not particularly hard but very repetitive, is working with AJAX request. There is always the trinity of loading, success and possible error states that had to be handled each time. But no more as the <Suspense /> component makes life much easier.
Another case is performance of larger and complex applications. Usually React is fast enough but with a large application rendering components can conflict with user interactions. Concurrent rendering will, mostly automatically, take care of this.
You will learn all about using , showing loading indicators and handling errors. You will see how easy it is to get started with concurrent rendering. You will make suspense even more capable by combining it with concurrent rendering, the useTransition() hook and the component.
The React team has rewritten the book on developing components several times. This time they have introduced Suspense. Amongst other thing this makes splitting your application into multiple bundles easier. But that is only the start as the real innovation comes when loading data. Gone are the side effect hooks with the typical loading, loaded and error states. Instead we can suspend components when loading data. Need to do multiple request? No problem you can suspend multiple components at the same time if you want. Need to trap errors? No problem just use a standard React error boundary. Come to this session to learn what React Suspense can do for you.
Reactive and functional programming, you have probably heard the term mentioned before. It’s supposed to be really cool and a good practice. But what is reactive programming exactly and how to get started with it in JavaScript? And why does Angular start using the reactive extensions for JavaScript (RxJS) instead of standard promises?
In this presentation, Maurice is going to show you how to get started with RxJS, the JavaScript implementation of the ReactiveX library. You will learn why using RxJS is a great way of dealing with streams of events in an asynchronous and functional way.
Using restful APIs can be hard on your React applications. Before you know it, you are doing lots of parallel queries to the server. Using GraphQL instead of REST might help a lot. Instead of downloading many complete resources each component declares its own needs. Then the GraphQL client library then combines these requirements. The result is a single optimized query for the server. In this session, Maurice de Beijer is going to show you how to get started with GraphQL in your React applications.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
2. Who am I?
• Maurice de Beijer
• The Problem Solver
• Microsoft Azure MVP
• Freelance developer/instructor
• Twitter: @mauricedb and @React_Tutorial
• Web: http://www.TheProblemSolver.nl
• E-mail: maurice.de.beijer@gmail.com
The server is often just a simple gateway with just some validation logic
There is nothing wrong with a CRUD application if the problem domain is simple
http://www.flickr.com/photos/juhansonin/5144239690
A basic React component to show a list of permits
CQRS = Command Query Responsibility Segregation
Use a different model to update information than the model you use to read information
http://www.flickr.com/photos/usnavy/8220344431
Commands should be modeled after business actions
A business user can understand command names and have a reasonable expectation of the outcome
http://www.flickr.com/photos/micahdowty/4630801442
Still storing just the current state
Database structure is often normalized and optimized for updating
Most application read far more frequently then update
The JavaScript command to send to the server
Using Flux Standard Actions
We are still storing only the current state
No trace of how we got there
http://www.flickr.com/photos/danrocha/15602018982
Event Sourcing is a very old idea that has become popular again over recent years.
Invented by Greg Young
Events provide insight into how the system came to be in its current state
The current state is a left fold of the events
http://www.flickr.com/photos/dragontomato/5174914835
Domain Event is something that has happened in the past
The result of a Command to change something
Very similar to the audit trail in a database
http://www.flickr.com/photos/lendingmemo/11747440176/
Invented by Greg Young
No longer storing the current state but all event leading up to it
The current state is a left fold of all events
The projection parts are not really part of ES but CQRS and usually combined
Another service subscribes to the same events
And pushes them to each connected client
Flux has a very similar and explicit way of working with data.
Events are projected out to the read model
Observed facts = events
Derived facts = projections
http://www.flickr.com/photos/fotnmc/7172465908
A Redux reducer function for a collection of permits.
It calls another reducer for individual permits
Very functional: Old State + Action = New State
A Redux reducer function for a single permit.
The Redux createStore() function creates the store based on the reduce functions.
The React-Redux Provider connects the store state to the root App component.
The React-Redux connect functions makes data from the store available as props for the child React component.
More info:
Greg Young: http://goodenoughsoftware.net/
Martin Fowler: http://martinfowler.com/eaaDev/EventSourcing.html
Daniel Whittaker: http://danielwhittaker.me/tag/event-sourcing/
João Bragança: https://github.com/thefringeninja/derp.inventory
Damian Hickey: http://dhickey.ie/?tag=/Event-Sourcing
https://www.flickr.com/photos/stevendepolo/4582437563/