The Serverless experience is revolutionary and will grow to dominate the future of Cloud. Function-as-a-Service (FaaS) however—with its ephemeral, stateless, and short-lived functions—is only the first step. FaaS is great for processing-intensive, parallelizable workloads, moving data from A to B providing enrichment and transformation along the way. But it is quite limited and constrained in what use-cases it addresses well, which makes it very hard/inefficient to implement general-purpose application development and distributed systems protocols.
What’s needed is a next-generation Serverless platform and programming model for general-purpose application development in the new world of real-time data and event-driven systems. What is missing is ways to manage distributed state in a scalable and available fashion, support for long-lived virtual stateful services, ways to physically co-locate data and processing, and options for choosing the right data consistency model for the job.
This talk will discuss the challenges, requirements, and introduce you to our proposed solution: Cloudstate—an Open Source project building the next generation Stateful Serverless and leveraging state models such as Event Sourcing, CQRS, and CRDTs, running on Akka, gRPC, Knative, Kubernetes, and GraalVM, in a polyglot fashion with support for Go, JavaScript, Java, Swift, Scala, Python, Kotlin, and more.
How Events Are Reshaping Modern SystemsJonas Bonér
Event-driven architecture and design have been getting a lot of attention in recent years. It’s an old concept that has been around for decades, so why this sudden peak of interest?
In this talk, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events. The goal is to arm you with a solid theoretical understanding of how to design an event-driven system, what tools and techniques you can use to reap the most benefit from its design, and perhaps most importantly, what to avoid.
We'll discuss how an event-driven design can help:
- drive autonomy
- reduce risk
- increase certainty
- increase loose coupling
- increase scalability
- increase resilience
- increase traceability
Skeptics should definitely attend.
In this talk, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events and commands by applying an events-first domain-driven design to microservices-based architectures.
We will start by developing a solid theoretical understanding of how to design systems of event-driven microservices. Then we will discuss the practical tools and techniques you can use to reap the most benefit from that design, as well as, most importantly, what to avoid along the way.
We’ll discuss how an events-first design approach to building microservices can improve the following characteristics over competing techniques:
- increase certainty
- increase resilience
- increase scalability
- increase traceability
- increase loose coupling
- reduce risk
Skeptics should definitely attend.
The Reactive Principles: Design Principles For Cloud Native ApplicationsJonas Bonér
Reactive Summit Keynote 2020: https://www.youtube.com/watch?v=e5kek8vx2ws
Abstract: Building applications for the cloud means embracing a radically different architecture than that of a traditional single-machine monolith, requiring new tools, practices, and design patterns. The cloud’s distributed nature brings its own set of concerns–building a Cloud Native, Edge Native, or Internet of Things (IoT) application means building and running a distributed system on unreliable hardware and across unreliable networks. In this keynote session by Jonas Bonér, creator of Akka, founder/CTO of Lightbend, and Chair of the Reactive Foundation, we’ll review a set of Reactive Principles that enable the design and implementation of Cloud Native applications–applications that are highly concurrent, distributed, performant, scalable, and resilient, while at the same time conserving resources when deploying, operating, and maintaining them.
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsJonas Bonér
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand.
We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications. In this talk we will discuss four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven—how they impact application design, how they interact, their supporting technologies and techniques, how to think when designing and building them—all to make it easier for you and your team to Go Reactive.
Intended Audience:
Programmers, architects, CIO/CTOs and everyone with a desire to challenge the status quo and expand their horizons on how to tackle the current and future challenges in the computing industry.
Abstract:
Reactive applications need to be able to respond to demand, be elastic and ready to scale up, down, in and out—taking full advantage of mobile, multi-core and cloud computing architectures—in real time.
In this talk we will discuss the guiding principles making this possible through the use of share-nothing and non-blocking designs, applied all the way down the stack. We will learn how to deliver systems that provide reactive supply to changing demand.
I gave this talk at React Conf 2014 in London. Recording available here: https://www.youtube.com/watch?v=mBFdj7w4aFA
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMJonas Bonér
My talk for JavaOne 2009
Abstract:
Writing concurrent programs in the Java programming language is hard, and writing correct concurrent programs is even harder. What should be noted is that the main problem is not concurrency itself but the use of mutable shared state. Reasoning about concurrent updates to, and guarding of, mutable shared state is extremely difficult. It imposes problems such as dealing with race conditions, deadlocks, live locks, thread starvation, and the like.
It might come as a surprise to some people, but there are alternatives to so-called shared-state concurrency (which has been adopted by C, C++, and the Java programming language and become the default industry-standard way of dealing with concurrency problems).
This session discusses the importance of immutability and explores alternative paradigms such as dataflow concurrency, message-passing concurrency, and software transactional memory. It includes a pragmatic discussion of the drawbacks and benefits of each paradigm and, through hands-on examples, shows you how each one, in its own way, can raise the abstraction level and give you a model that is much easier to reason about and use. The presentation also shows you how, by choosing the right abstractions and technologies, you can make hard concurrency problems close to trivial. All discussions are driven by examples using state-of-the-art implementations available for the JVM machine.
Designing Events-First Microservices For A Cloud Native WorldLightbend
In this talk by Jonas Bonér, Lightbend CTO/Co-Founder and creator of Akka, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events and commands by applying an events first, domain-driven design to microservices-based architectures.
For more information, head over to lightbend.com/blog!
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsJonas Bonér
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand.
We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications. In this talk we will discuss four key traits of Reactive; Event-Driven, Scalable, Resilient and Responsive—how they impact application design, how they interact, their supporting technologies and techniques, how to think when designing and building them—all to make it easier for you and your team to Go Reactive.
How Events Are Reshaping Modern SystemsJonas Bonér
Event-driven architecture and design have been getting a lot of attention in recent years. It’s an old concept that has been around for decades, so why this sudden peak of interest?
In this talk, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events. The goal is to arm you with a solid theoretical understanding of how to design an event-driven system, what tools and techniques you can use to reap the most benefit from its design, and perhaps most importantly, what to avoid.
We'll discuss how an event-driven design can help:
- drive autonomy
- reduce risk
- increase certainty
- increase loose coupling
- increase scalability
- increase resilience
- increase traceability
Skeptics should definitely attend.
In this talk, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events and commands by applying an events-first domain-driven design to microservices-based architectures.
We will start by developing a solid theoretical understanding of how to design systems of event-driven microservices. Then we will discuss the practical tools and techniques you can use to reap the most benefit from that design, as well as, most importantly, what to avoid along the way.
We’ll discuss how an events-first design approach to building microservices can improve the following characteristics over competing techniques:
- increase certainty
- increase resilience
- increase scalability
- increase traceability
- increase loose coupling
- reduce risk
Skeptics should definitely attend.
The Reactive Principles: Design Principles For Cloud Native ApplicationsJonas Bonér
Reactive Summit Keynote 2020: https://www.youtube.com/watch?v=e5kek8vx2ws
Abstract: Building applications for the cloud means embracing a radically different architecture than that of a traditional single-machine monolith, requiring new tools, practices, and design patterns. The cloud’s distributed nature brings its own set of concerns–building a Cloud Native, Edge Native, or Internet of Things (IoT) application means building and running a distributed system on unreliable hardware and across unreliable networks. In this keynote session by Jonas Bonér, creator of Akka, founder/CTO of Lightbend, and Chair of the Reactive Foundation, we’ll review a set of Reactive Principles that enable the design and implementation of Cloud Native applications–applications that are highly concurrent, distributed, performant, scalable, and resilient, while at the same time conserving resources when deploying, operating, and maintaining them.
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven SystemsJonas Bonér
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand.
We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications. In this talk we will discuss four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven—how they impact application design, how they interact, their supporting technologies and techniques, how to think when designing and building them—all to make it easier for you and your team to Go Reactive.
Intended Audience:
Programmers, architects, CIO/CTOs and everyone with a desire to challenge the status quo and expand their horizons on how to tackle the current and future challenges in the computing industry.
Abstract:
Reactive applications need to be able to respond to demand, be elastic and ready to scale up, down, in and out—taking full advantage of mobile, multi-core and cloud computing architectures—in real time.
In this talk we will discuss the guiding principles making this possible through the use of share-nothing and non-blocking designs, applied all the way down the stack. We will learn how to deliver systems that provide reactive supply to changing demand.
I gave this talk at React Conf 2014 in London. Recording available here: https://www.youtube.com/watch?v=mBFdj7w4aFA
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMJonas Bonér
My talk for JavaOne 2009
Abstract:
Writing concurrent programs in the Java programming language is hard, and writing correct concurrent programs is even harder. What should be noted is that the main problem is not concurrency itself but the use of mutable shared state. Reasoning about concurrent updates to, and guarding of, mutable shared state is extremely difficult. It imposes problems such as dealing with race conditions, deadlocks, live locks, thread starvation, and the like.
It might come as a surprise to some people, but there are alternatives to so-called shared-state concurrency (which has been adopted by C, C++, and the Java programming language and become the default industry-standard way of dealing with concurrency problems).
This session discusses the importance of immutability and explores alternative paradigms such as dataflow concurrency, message-passing concurrency, and software transactional memory. It includes a pragmatic discussion of the drawbacks and benefits of each paradigm and, through hands-on examples, shows you how each one, in its own way, can raise the abstraction level and give you a model that is much easier to reason about and use. The presentation also shows you how, by choosing the right abstractions and technologies, you can make hard concurrency problems close to trivial. All discussions are driven by examples using state-of-the-art implementations available for the JVM machine.
Designing Events-First Microservices For A Cloud Native WorldLightbend
In this talk by Jonas Bonér, Lightbend CTO/Co-Founder and creator of Akka, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events and commands by applying an events first, domain-driven design to microservices-based architectures.
For more information, head over to lightbend.com/blog!
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsJonas Bonér
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand.
We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications. In this talk we will discuss four key traits of Reactive; Event-Driven, Scalable, Resilient and Responsive—how they impact application design, how they interact, their supporting technologies and techniques, how to think when designing and building them—all to make it easier for you and your team to Go Reactive.
NATS - A new nervous system for distributed cloud platformsDerek Collison
NATS is an open-source, high-performance, lightweight cloud messaging system.
NATS was created by Derek Collison, Founder/CEO of Apcera who has spent 20+ years designing, building, and using publish-subscribe messaging systems. Unlike traditional enterprise messaging systems, NATS has an always-on dial tone that does whatever it takes to remain available. This forms a great base for building modern, reliable, and scalable cloud and distributed systems.
Part 2: What you should know about Elasticity, Scalability and Location Transparency in Reactive systems
In the second of three webinars with live Q/A, we look into how organizations with Reactive systems are able to adaptively scale in an elastic, infrastructure-efficient way, and the role that location transparency plays in distributed Reactive systems. Reactive Streams contributor and deputy CTO at Typesafe, Inc., Viktor Klang reviews what you should know about:
How Reactive systems enable near-linear scalability in order to increase performance proportionally to the allocation of resources, avoiding the constraints of bottlenecks or synchronization points within the system
How elasticity builds upon scalability in Reactive systems to automatically adjust the throughput of varying demand when resources are added or removed proportionally and dynamically at runtime.
The role of location transparency in distributed computing (in systems running on a single node or on a cluster) and how of decoupling runtime instances from their references can embrace network constraints like partial failure, network splits, dropped messages and more.
In the third and final webinar in the series with Jonas Bonér, we go over resiliency, failures vs errors, isolation (and containment), delegation and replication in Reactive systems.
This is a talk given by Jason Hoffman at a workshop given by Joyent called "Scale With Rails" in 2006. There's quite a bit of prescience in this presentation, including the first documented use of ZFS in production ("Fsck you if you think ZFS isn't production") and of OS-based virtualization (zones) in the cloud (which, it must be said, was not called "cloud" in 2006).
Reactive Systems by Dave Farley at #AgileIndia2019Agile India
21st century problems cannot be solved with 20th century software architectures. So why is the starting point for so many projects built on the assumption of a simplistic monolithic, three-layer architecture sat on top of a RDBMS? Hardware has progressed. It has changed many of the assumptions that such architectures were built upon. Modern systems are distributed, deal with massive throughput of data and transactions. Users expect 24/7 service.
The Reactive Manifesto describes what it takes to build systems that meet these demands. Such systems are Responsive, Resilient, Elastic and Message Driven. What does this mean in terms of software architecture and design? This presentation will introduce these ideas and describe how systems built on these principles work.
More details:
https://confengine.com/agile-india-2019/proposal/8536/reactive-systems
Conference link: https://2019.agileindia.org
In this presentation you will understand what is CAP theorem, PACELC theorem, ACID / BASE principles and understand how to use them when you describe distributed database.
Distributed Deep Learning with Docker at SalesforceDocker, Inc.
Jeff Hajewski, Salesforce -
There is a wealth of information on building deep learning models with PyTorch or TensorFlow. Anyone interested in building a deep learning model is only a quick search away from a number of clear and well written tutorials that will take them from zero knowledge to having a working image classifier. But what happens when you need to deploy these models in a production setting? At Salesforce, we use TensorFlow models to help us provide customers with insights into their data, and we do this as close to real-time as possible. Designing these systems in a scalable manner requires overcoming a number of design challenges, but the core component is Docker. Docker enables us to design highly scalable systems by allowing us to focus on service interactions, rather than how our services will interact with the hardware. Docker is also at the core of our test infrastructure, allowing developers and data scientists to build and test the system in an end to end manner on their local machines. While some of this may sound complex, the core message is simplicity - Docker allows us to focus on the aspects of the system that matter, greatly simplifying our lives.
Cassandra is pretty awesome, sure I am biased, but it rocks. Always on, tuneable consistency and multi-master architecture? Let’s get our web scale on and build a highly available app that never goes down!
Hold on a second. There is one key piece of the puzzle that has a massive impact on your applications availability: the client driver.
In this talk we will go through the how to best configure your clients to make the most of failure handling and tuneable consistency in Cassandra.
In this webinar by Jonas Bonér, creator of Akka and CTO/Co-Founder of Lightbend, we take a look at Cloudstate, an OSS tool built on Akka, gRPC, Knative, GraalVM, and Kubernetes. Cloudstate lets you model, manage, and scale stateful services while preserving responsiveness by designing for resilience and elasticity.
Með tilkomu vefsins og nýrra lausna í skýinu, hafa kröfur til vefkerfa breyst mikið. Nú þarf að meðhöndla marga notendur og stundum vera undir miklu álagi. Það kemst í fréttirnar þegar vinsælir vefir hrynja undan álagi. En hvernig búum við til launsir sem þola álag. Í þessu fyrirlestri skoðum við leiðir til að skala og þau hugtök sem tengjast því.
NATS - A new nervous system for distributed cloud platformsDerek Collison
NATS is an open-source, high-performance, lightweight cloud messaging system.
NATS was created by Derek Collison, Founder/CEO of Apcera who has spent 20+ years designing, building, and using publish-subscribe messaging systems. Unlike traditional enterprise messaging systems, NATS has an always-on dial tone that does whatever it takes to remain available. This forms a great base for building modern, reliable, and scalable cloud and distributed systems.
Part 2: What you should know about Elasticity, Scalability and Location Transparency in Reactive systems
In the second of three webinars with live Q/A, we look into how organizations with Reactive systems are able to adaptively scale in an elastic, infrastructure-efficient way, and the role that location transparency plays in distributed Reactive systems. Reactive Streams contributor and deputy CTO at Typesafe, Inc., Viktor Klang reviews what you should know about:
How Reactive systems enable near-linear scalability in order to increase performance proportionally to the allocation of resources, avoiding the constraints of bottlenecks or synchronization points within the system
How elasticity builds upon scalability in Reactive systems to automatically adjust the throughput of varying demand when resources are added or removed proportionally and dynamically at runtime.
The role of location transparency in distributed computing (in systems running on a single node or on a cluster) and how of decoupling runtime instances from their references can embrace network constraints like partial failure, network splits, dropped messages and more.
In the third and final webinar in the series with Jonas Bonér, we go over resiliency, failures vs errors, isolation (and containment), delegation and replication in Reactive systems.
This is a talk given by Jason Hoffman at a workshop given by Joyent called "Scale With Rails" in 2006. There's quite a bit of prescience in this presentation, including the first documented use of ZFS in production ("Fsck you if you think ZFS isn't production") and of OS-based virtualization (zones) in the cloud (which, it must be said, was not called "cloud" in 2006).
Reactive Systems by Dave Farley at #AgileIndia2019Agile India
21st century problems cannot be solved with 20th century software architectures. So why is the starting point for so many projects built on the assumption of a simplistic monolithic, three-layer architecture sat on top of a RDBMS? Hardware has progressed. It has changed many of the assumptions that such architectures were built upon. Modern systems are distributed, deal with massive throughput of data and transactions. Users expect 24/7 service.
The Reactive Manifesto describes what it takes to build systems that meet these demands. Such systems are Responsive, Resilient, Elastic and Message Driven. What does this mean in terms of software architecture and design? This presentation will introduce these ideas and describe how systems built on these principles work.
More details:
https://confengine.com/agile-india-2019/proposal/8536/reactive-systems
Conference link: https://2019.agileindia.org
In this presentation you will understand what is CAP theorem, PACELC theorem, ACID / BASE principles and understand how to use them when you describe distributed database.
Distributed Deep Learning with Docker at SalesforceDocker, Inc.
Jeff Hajewski, Salesforce -
There is a wealth of information on building deep learning models with PyTorch or TensorFlow. Anyone interested in building a deep learning model is only a quick search away from a number of clear and well written tutorials that will take them from zero knowledge to having a working image classifier. But what happens when you need to deploy these models in a production setting? At Salesforce, we use TensorFlow models to help us provide customers with insights into their data, and we do this as close to real-time as possible. Designing these systems in a scalable manner requires overcoming a number of design challenges, but the core component is Docker. Docker enables us to design highly scalable systems by allowing us to focus on service interactions, rather than how our services will interact with the hardware. Docker is also at the core of our test infrastructure, allowing developers and data scientists to build and test the system in an end to end manner on their local machines. While some of this may sound complex, the core message is simplicity - Docker allows us to focus on the aspects of the system that matter, greatly simplifying our lives.
Cassandra is pretty awesome, sure I am biased, but it rocks. Always on, tuneable consistency and multi-master architecture? Let’s get our web scale on and build a highly available app that never goes down!
Hold on a second. There is one key piece of the puzzle that has a massive impact on your applications availability: the client driver.
In this talk we will go through the how to best configure your clients to make the most of failure handling and tuneable consistency in Cassandra.
In this webinar by Jonas Bonér, creator of Akka and CTO/Co-Founder of Lightbend, we take a look at Cloudstate, an OSS tool built on Akka, gRPC, Knative, GraalVM, and Kubernetes. Cloudstate lets you model, manage, and scale stateful services while preserving responsiveness by designing for resilience and elasticity.
Með tilkomu vefsins og nýrra lausna í skýinu, hafa kröfur til vefkerfa breyst mikið. Nú þarf að meðhöndla marga notendur og stundum vera undir miklu álagi. Það kemst í fréttirnar þegar vinsælir vefir hrynja undan álagi. En hvernig búum við til launsir sem þola álag. Í þessu fyrirlestri skoðum við leiðir til að skala og þau hugtök sem tengjast því.
Containerizing Traditional ApplicationsJim Bugwadia
Can traditional applications be containerized? Does it make sense to do so? In this meetup session we tackle some of these questions, with a focus on managing stateful applications using Docker or other container technologies!
SpringPeople - Introduction to Cloud ComputingSpringPeople
Cloud computing is no longer a fad that is going around. It is for real and is perhaps the most talked about subject. Various players in the cloud eco-system have provided a definition that is closely aligned to their sweet spot –let it be infrastructure, platforms or applications.
This presentation will provide an exposure of a variety of cloud computing techniques, architecture, technology options to the participants and in general will familiarize cloud fundamentals in a holistic manner spanning all dimensions such as cost, operations, technology etc
Apache Kafka - Scalable Message-Processing and more !Guido Schmutz
ndependent of the source of data, the integration of event streams into an Enterprise Architecture gets more and more important in the world of sensors, social media streams and Internet of Things. Events have to be accepted quickly and reliably, they have to be distributed and analysed, often with many consumers or systems interested in all or part of the events. How can me make sure that all these event are accepted and forwarded in an efficient and reliable way? This is where Apache Kafaka comes into play, a distirbuted, highly-scalable messaging broker, build for exchanging huge amount of messages between a source and a target.
This session will start with an introduction into Apache and presents the role of Apache Kafka in a modern data / information architecture and the advantages it brings to the table. Additionally the Kafka ecosystem will be covered as well as the integration of Kafka in the Oracle Stack, with products such as Golden Gate, Service Bus and Oracle Stream Analytics all being able to act as a Kafka consumer or producer.
Amazon EKS 그리고 Service Mesh
Kubernetes는 컨테이너 서비스를 도입하는 기업들에게 가장 있기있는 Orchestration 플랫폼입니다. 이 세션에서는 아마존에서 6월 정식 출시한 managed Kubenetes서비스인 EKS를 소개해드리며, 오픈소스 버전과의 차이점 및 장점 등에 대해 설명하고, 진보한 마이크로 서비스인 Service Mesh를 구현하는 Linkerd 소개 및 데모를 진행하고자 합니다.
Early Draft: Service Mesh allows developers to focus on business logic while the crosscutting network data layer code is handled by the Service Mesh. This is a boon because this code can be tricky to implement and hard to test all of the edge cases. Service Mesh takes this a few steps further than AOP or Servlet Filters or custom language-specific frameworks because it works regardless of the underlying programming language being used which is great for polyglot development shops. Thus standardizing how these layers work, while allowing teams to pick the best tools or languages for the job at hand. Kubernetes and Istio Service Mesh automate best practices for DevSecOps needs like: failover, scale-out, scalability, health checks, circuit breakers, rate limiters, metrics, observability, avoiding cascading failure, disaster recovery, and traffic routing; supporting CI/CD and microservices architecture.
Istio’s ability to automate and maintaining zero trust networks is its most important feature. In the age of high-profile data breaches, security is paramount. Companies want to avoid major brand issues that impact the bottom line and shrink market capitalization in an instant. Istio allows a standard way to do mTLS and auto certificate rotation which helps prevent a breach and limits the blast radius if a breach occurs. Istio also takes the concern of mTLS from microservices deployments and makes it easy to use taking the burden off of application developers.
One of the most critical design decisions on enterprise programming is where to keep the state. As we talked about in the lecture on Concurrency, session state is the state that is maintained between requests. A session starts when the user first hits the enterprise system, and lasts until the user signs out or times out. In this lecture we look at the session state and explore three design patterns on where to store the session state.
The second topic in this lecture is how to distribution the applications. The primary reason we want to do that is to get more performance and handle more load. Most enterprise applications have lots of users, some hundreds of thousands. The only way to cope with such load is to scale the application. Scalability is how much more load an application can take if more resources are added. We will look at two ways to scale, one is by load balancing and the other by clustering.
Video of this lecture are found here:
http://www.olafurandri.com/?page_id=2762
Serverless Architectures - Where have all the servers gone?Nane Kratzke
Serverless architectures refer to cloud applications that depend substantially on 3rd party services (Backend as a Service, BaaS)
or on custom code that is run in ephemeral deployment units (Function as a Service, FaaS). By moving much behavior to the front end, such architectures reduce the need for ‚always on‘ servers. Therefore, such systems can reduce operational cost and shift operational complexity to BaaS service providers at cost of vendor dependencies and (still) immaturity of supporting services and tools.
This presentation explains the term "Serverless" and how it is changing cloud application architectures. It identifies open issues, benefits and drawbacks, as well as (in-)appropriate use cases for Serverless. It closes with a curated list of Serverless services, standalone platforms and frameworks and provides a list for further reading.
Fundamental and Practice.
Explain about microservices characters and pattern. And also how to be good build microservices. And also additional the scale cube and CAP theory.
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...GeeksLab Odessa
4.6.16 AI&BigData Lab
Upcoming events: goo.gl/I2gJ4H
Как устроить анализ данных 40 млн. человек за 5 лет так, чтобы это выглядело почти в реальном времени.
Asanka Abeysinghe, Architect, WSO2 at the SOA Workshop in Colombo, Sri Lanka (September 17, 2009) demonstrates mapping several enterprise SOA patterns to a few real world business requirements. He also discusses SOA implementation details using products from the WSO2 SOA platform.
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...HostedbyConfluent
Indeed is consciously transforming our monolith applications to microservices. Moving monoliths from on-premise to a hybrid architecture is a non-trivial endeavor. It is as we know a marathon and never never a race when we refactor not all of our applications but, incrementally progress onward to resilience with cloud.
By partnering with Confluent we were able to procedurally migrate many of our workloads both critical and non-critical primarily using Kafka by adopting a data domain driven approach. In this talk, you will learn,
1. How to piece complex puzzles when you have bits of information
2. What questions to ask to prioritize feature improvements
3. How to enumerate impact
4. How to let your vendor know what is valuable
With over 20 years of experience working with various databases and datastores, I will share real examples of success and failures and lessons we learned when working with Confluent Cloud by:
- Implementing strategies
- Addressing short and long term value - for both technical and business
- The very methodical methods to form roadmaps
If you’re in discussions surrounding engineering platforms at your organization then this talk is for you. If you are a data driven engineering organization with solid leadership with sound decisions behind it, join us for this talk and let’s have a discussion.
Changing application demands: What developers need to knowIndicThreads
Due to the demands of our hyper-connected, Internet-driven economy, users expect speedy delivery of new features, highly engaging personalized user experiences, and smooth, streamlined performance. The result is that best practices for application development and architecture are rapidly changing.
Traditional approaches to development are no longer competitive, with the new focus on simplicity, usability, and large-scale DevOps agility. In order to thrive, development teams must adjust to deliver high-quality applications fast.
This keynote will discuss:
The traditional monolith application vs. the modern application.
Architectural considerations for the modern application.
How trends such as DevOps and microservices affect application design.
Tools, technologies, and techniques for building modern applications.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Similar to Cloudstate—Towards Stateful Serverless (20)
We are drowning in complexity—can we do better?Jonas Bonér
Today’s vast cloud-native infrastructure ecosystem is excellent. Unfortunately, it has grown very complex and hard to navigate. What tools to use for what job? How to compose them into a single coherent system? How to ensure the application’s guarantees and SLAs holistically? It can easily be overwhelming, and a lot falls on the Ops/SRE team that needs to manage it all.
Serverless to the rescue? Yes and no. It does provide a fantastic promise of a better DX for developers. But it has fallen short of this promise, stopped in its tracks halfway there.
Can we do better? Definitely. What we need is a new category of managed platforms that do full “vertical integration” of all infrastructure; providing a simple and high-level programming model allows the developer to focus on just three things: API definition, domain data, and business logic—i.e., working on direct business value. The rest, all of the rest, should be outsourced to the platform itself. Let me show you what I mean.
Kalix: Tackling the The Cloud to Edge ContinuumJonas Bonér
Read this blog for an overview of Kalix:
https://www.kalix.io/blog/kalix-move-to-the-cloud-extend-to-the-edge-go-beyond
Abstract:
What will the future of the Cloud and Edge look like for us as developers? We have great infrastructure nowadays, but that only solves half of the problem. The Serverless developer experience shows the way, but it’s clear that FaaS is not the final answer. What we need is a programming model and developer UX that takes full advantage of new Cloud and Edge infrastructure, allowing us to build general-purpose applications, without needless complexity.
What if you only had to think about your business logic, public API, and how your domain data is structured, not worry about how to store and manage it? What if you could not only be serverless but become “databaseless” and forget about databases, storage APIs, and message brokers?
Instead, what if your data just existed wherever it needed to be, co-located with the service and its user, at the edge, in the cloud, or in your own private network—always there and available, always correct and consistent? Where the data is injected into your services on an as-needed basis, automatically, timely, efficiently, and intelligently.
Services, powered with this “data plane” of application state—attached to and available throughout the network—can run anywhere in the world: from the public Cloud to 10,000s of PoPs out at the Edge of the network, in close physical approximation to its users, where the co-location of state, processing, and end-user, ensures ultra-low latency and high throughput.
Sounds exciting? Let me show you how we are making this vision a reality building a distributed real-time Data Plane PaaS using technologies like Akka, Kubernetes, gRPC, Linkerd, and more.
Reactive Microsystems: The Evolution of Microservices at ScaleJonas Bonér
Everyone is talking about Microservices and there is more confusion than ever about what the promise of Microservices really means—and how to deliver on it. To address this situation, we will explore Microservices from first principles, distill their essence and put them in their true context: Distributed Systems.
Distributed Systems is very hard and we—system developers—have been spoiled by centralized servers for too long. Slicing an existing system into various REST services and wiring them back together again with synchronous protocols and traditional enterprise tools—designed for Monolithic architectures—will set us up for failure.
As if that wasn’t enough, we can’t only think about systems of Microservices. In order to make each Microservice scalable and resilient in and of itself, we have to design each Microservice as a Distributed System—a «Microsystem»—architected from the ground up using the Reactive principles and Events-first Domain Driven Design.
In this talk I’ll walk you through the evolution of such a system, discussing what you need to know in order to design a Scalable Microservices Architecture.
Everyone is talking about microservices, and there is more confusion than ever about what the promise of microservices really means and how to deliver on it. To address this we will explore microservices from first principles, distilling their essence and putting them in their true context: distributed systems.
What many people forget is that microservices are distributed and collaborative by nature and only make sense as systems—one collaborator is no collaborator. It is in between the microservices that the most interesting and rewarding, and also challenging, problems arise—enter the world of distributed systems.
Distributed systems are by definition complex, and we system developers have been spoiled by centralized servers for too long to easily understand what this really means. Slicing an existing system into various REST services and wiring them back together again with synchronous protocols and traditional enterprise tools—designed for monolithic architectures—will set us up for failure.
As if that wasn’t enough, we can’t just think about systems of microservices. In order to make each microservice resilient and elastic in and of itself, we have to design each individual microservice as a distributed system—a «microsystem»—architected from the ground up using the reactive principles.
Without Resilience, Nothing Else MattersJonas Bonér
It doesn’t matter how beautiful, loosely coupled, scalable, highly concurrent, non-blocking, responsive and performant your application is—if it isn't running, then it's 100% useless. Without resilience, nothing else matters.
Most developers understand what the word resilience means, at least superficially, but way too many lack a deeper understanding of what it really means in the context of the system that they are working on now. I find it really sad to see, since understanding and managing failure is more important today than ever. Outages are incredibly costly—for many definitions of cost—and can sometimes take down whole businesses.
In this talk we will explore the essence of resilience. What does it really mean? What is its mechanics and characterizing traits? How do other sciences and industries manage it, and what can we learn from that? We will see that everything hints at the same conclusion; that failure is inevitable and needs to be embraced, and that resilience is by design.
Video: https://www.parleys.com/tutorial/life-beyond-illusion-present
Summary: The idea of the present is an illusion. Everything we see, hear and feel is just an echo from the past. But this illusion has influenced us and the way we view the world in so many ways; from Newton’s physics with a linearly progressing timeline accruing absolute knowledge along the way to the von Neumann machine with its total ordering of instructions updating mutable state with full control of the “present”. But unfortunately this is not how the world works. There is no present, all we have is facts derived from the merging of multiple pasts. The truth is closer to Einstein’s physics where everything is relative to one’s perspective.
As developers we need to wake up and break free from the perceived reality of living in a single globally consistent present. The advent of multicore and cloud computing architectures meant that most applications today are distributed systems—multiple cores separated by the memory bus or multiple nodes separated by the network—which puts a harsh end to this illusion. Facts travel at the speed of light (at best), which makes the distinction between past and perceived present even more apparent in a distributed system where latency is higher and where facts (messages) can get lost.
The only way to design truly scalable and performant systems that can construct a sufficiently consistent view of history—and thereby our local “present”—is by treating time as a first class construct in our programming model and to model the present as facts derived from the merging of multiple concurrent pasts.
In this talk we will explore what all this means to the design of our systems, how we need to view and model consistency, consensus, communication, history and behaviour, and look at some practical tools and techniques to bring it all together.
Building Reactive Systems with Akka (in Java 8 or Scala)Jonas Bonér
Learn how to build Reactive Systems with Akka. Examples in both Java 8 and Scala.
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand. We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications.
In this talk we will introduce you to Akka and discuss how it can help you deliver on the four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven. We will start with the basics of Akka and work our way towards some of its more advanced modules such as Akka Cluster and Akka Persistence—all driven through code and practical examples.
Introduction to Akka 2. Explains what Akka's actors are all about and how to utilize them to write scalable and fault-tolerant systems.
Talk given at JavaZone 2012.
Akka: Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Ac...Jonas Bonér
Akka is the platform for the next generation event-driven, scalable and fault-tolerant architectures on the JVM
We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction.
Akka is here to change that.
Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provides a better platform to build correct concurrent and scalable applications.
For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop.
Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Akka is Open Source and available under the Apache 2 License.
Short (45 min) version of my 'Pragmatic Real-World Scala' talk. Discussing patterns and idioms discovered during 1.5 years of building a production system for finance; portfolio management and simulation.
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.
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.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
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.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
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.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
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!
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
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.
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.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
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.
2. “We predict that Serverless Computing will grow
to dominate the future of Cloud Computing.”
- Berkeley CS Department
Cloud computing simplified: a Berkeley view on serverless computing
10. good use-cases
For FaaS?
1. Embarrassingly parallel processing tasks—invoked on demand & intermittently,
examples include: image processing, object recognition, log analysis
2. Low traffic applications—enterprise IT services, and spiky workloads
3. Stateless web applications—serving static content form S3 (or similar)
4. Orchestration functions—integration/coordination of calls to third-party services
5. Composing chains of functions—stateless workflow management, connected via
data dependencies
6. Job scheduling—CRON jobs, triggers, etc.
Use-cases where throughput is key rather than low latency
and requests can be completed in a short time window
12. 1. Functions are stateless, ephemeral, short-lived:
expensive to lose computational context & rehydrate
2. Durable state is always “somewhere else”
3. No co-location of state and processing
4. No direct addressability—all communication over external storage
5. Limited options for managing & coordinating distributed state
6. Limited options for modelling data consistency guarantees
FAAS: Hard to build
General-Purpose Applications
17. • Managing in-memory durable session state across individual requests
E.g. User Sessions, Shopping Carts, Caching
We Need Serverless Support For...
18. • Managing in-memory durable session state across individual requests
E.g. User Sessions, Shopping Carts, Caching
• Low-latency serving of dynamic in-memory models
E.g. Serving of Machine Learning Models
We Need Serverless Support For...
19. • Managing in-memory durable session state across individual requests
E.g. User Sessions, Shopping Carts, Caching
• Low-latency serving of dynamic in-memory models
E.g. Serving of Machine Learning Models
• Real-time stream processing
E.g. Recommendation, Anomaly Detection, Prediction Serving
We Need Serverless Support For...
20. • Managing in-memory durable session state across individual requests
E.g. User Sessions, Shopping Carts, Caching
• Low-latency serving of dynamic in-memory models
E.g. Serving of Machine Learning Models
• Real-time stream processing
E.g. Recommendation, Anomaly Detection, Prediction Serving
• Distributed resilient transactional workflows
E.g. Saga Pattern, Workflow Orchestration, Rollback/Compensating Actions
We Need Serverless Support For...
21. • Managing in-memory durable session state across individual requests
E.g. User Sessions, Shopping Carts, Caching
• Low-latency serving of dynamic in-memory models
E.g. Serving of Machine Learning Models
• Real-time stream processing
E.g. Recommendation, Anomaly Detection, Prediction Serving
• Distributed resilient transactional workflows
E.g. Saga Pattern, Workflow Orchestration, Rollback/Compensating Actions
• Shared collaborative workspaces
E.g. Collaborative Document Editing, Blackboards, Chat Rooms
We Need Serverless Support For...
22. • Managing in-memory durable session state across individual requests
E.g. User Sessions, Shopping Carts, Caching
• Low-latency serving of dynamic in-memory models
E.g. Serving of Machine Learning Models
• Real-time stream processing
E.g. Recommendation, Anomaly Detection, Prediction Serving
• Distributed resilient transactional workflows
E.g. Saga Pattern, Workflow Orchestration, Rollback/Compensating Actions
• Shared collaborative workspaces
E.g. Collaborative Document Editing, Blackboards, Chat Rooms
• Leader election, counting, voting
…and other distributed systems patterns/protocols for coordination
We Need Serverless Support For...
25. 1. Stateful long-lived addressable virtual components
Actors
2. Options for distributed coordination and communication patterns
Pub-Sub, Point-To-Point, Broadcast—CRDTs, Sagas, etc.
Technical Requirements
26. 1. Stateful long-lived addressable virtual components
Actors
2. Options for distributed coordination and communication patterns
Pub-Sub, Point-To-Point, Broadcast—CRDTs, Sagas, etc.
3. Options for managing distributed state reliably at scale
Ranging from strong to eventual consistency (durable/ephemeral)
Technical Requirements
27. 1. Stateful long-lived addressable virtual components
Actors
2. Options for distributed coordination and communication patterns
Pub-Sub, Point-To-Point, Broadcast—CRDTs, Sagas, etc.
3. Options for managing distributed state reliably at scale
Ranging from strong to eventual consistency (durable/ephemeral)
4. Intelligent adaptive placement of stateful functions
Physical co-location of state and processing, sharding, and sticky routing
Technical Requirements
28. 1. Stateful long-lived addressable virtual components
Actors
2. Options for distributed coordination and communication patterns
Pub-Sub, Point-To-Point, Broadcast—CRDTs, Sagas, etc.
3. Options for managing distributed state reliably at scale
Ranging from strong to eventual consistency (durable/ephemeral)
4. Intelligent adaptive placement of stateful functions
Physical co-location of state and processing, sharding, and sticky routing
5. Predictable performance, latency, and throughput
In startup time, communication/coordination, and storage of data
Technical Requirements
29. 1. Stateful long-lived addressable virtual components
Actors
2. Options for distributed coordination and communication patterns
Pub-Sub, Point-To-Point, Broadcast—CRDTs, Sagas, etc.
3. Options for managing distributed state reliably at scale
Ranging from strong to eventual consistency (durable/ephemeral)
4. Intelligent adaptive placement of stateful functions
Physical co-location of state and processing, sharding, and sticky routing
5. Predictable performance, latency, and throughput
In startup time, communication/coordination, and storage of data
6. Ways of managing end-to-end guarantees and correctness
Technical Requirements
50. Overview:
1. Open Source (Apache 2.0) project
2. Makes Stateful Serverless applications easy
What Is CloudState?
https://cloudstate.io
51. Overview:
1. Open Source (Apache 2.0) project
2. Makes Stateful Serverless applications easy
3. Reference implementation for a standard (protocol and spec)
What Is CloudState?
https://cloudstate.io
52. Overview:
1. Open Source (Apache 2.0) project
2. Makes Stateful Serverless applications easy
3. Reference implementation for a standard (protocol and spec)
4. Let’s you focus on business logic, data model, and workflow
What Is CloudState?
https://cloudstate.io
55. What Is CloudState?
https://cloudstate.io
Don’t worry about:
1. Managing: Complexities of Distributed and Concurrent systems
2. Managing: Distributed State—Consistency, Replication, Persistence
56. What Is CloudState?
https://cloudstate.io
Don’t worry about:
1. Managing: Complexities of Distributed and Concurrent systems
2. Managing: Distributed State—Consistency, Replication, Persistence
3. Managing: Databases, Service Meshes, and other infrastructure
57. What Is CloudState?
https://cloudstate.io
Don’t worry about:
1. Managing: Complexities of Distributed and Concurrent systems
2. Managing: Distributed State—Consistency, Replication, Persistence
3. Managing: Databases, Service Meshes, and other infrastructure
4. Managing: Message Routing, Scalability, Fail-over & Recovery
58. What Is CloudState?
https://cloudstate.io
Don’t worry about:
1. Managing: Complexities of Distributed and Concurrent systems
2. Managing: Distributed State—Consistency, Replication, Persistence
3. Managing: Databases, Service Meshes, and other infrastructure
4. Managing: Message Routing, Scalability, Fail-over & Recovery
5. Running & Operating your application
60. Technical Highlights:
1. Polyglot: Client libs in JavaScript, Java, Go—with upcoming support for
Python, .NET, Rust, Swift, Scala
What Is CloudState?
https://cloudstate.io
61. Technical Highlights:
1. Polyglot: Client libs in JavaScript, Java, Go—with upcoming support for
Python, .NET, Rust, Swift, Scala
2. PolyState: Powerful state models—Event Sourcing, CRDTs, Key Value
What Is CloudState?
https://cloudstate.io
62. Technical Highlights:
1. Polyglot: Client libs in JavaScript, Java, Go—with upcoming support for
Python, .NET, Rust, Swift, Scala
2. PolyState: Powerful state models—Event Sourcing, CRDTs, Key Value
3. PolyDB: Supporting SQL, NoSQL, NewSQL and in-memory replication
What Is CloudState?
https://cloudstate.io
63. Technical Highlights:
1. Polyglot: Client libs in JavaScript, Java, Go—with upcoming support for
Python, .NET, Rust, Swift, Scala
2. PolyState: Powerful state models—Event Sourcing, CRDTs, Key Value
3. PolyDB: Supporting SQL, NoSQL, NewSQL and in-memory replication
4. Leveraging Akka, gRPC, Knative, GraalVM, running on Kubernetes
What Is CloudState?
https://cloudstate.io
66. Kubernetes Pod
Kubernetes Pod
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Cloudstate Architecture
User Function
(JavaScript, Go, Java,…)
User Function
(JavaScript, Go, Java,…)
67. Kubernetes Pod
Kubernetes Pod
Kubernetes Pod
Cloudstate Proxy
(Akka Sidecar)
User Function
(JavaScript, Go, Java,…)
Cloudstate Architecture
User Function
(JavaScript, Go, Java,…)
User Function
(JavaScript, Go, Java,…)
68. Kubernetes Pod
Kubernetes Pod
Kubernetes Pod
Cloudstate Proxy
(Akka Sidecar)
User Function
(JavaScript, Go, Java,…)
Cloudstate Architecture
User Function
(JavaScript, Go, Java,…)
User Function
(JavaScript, Go, Java,…)
69. Kubernetes Pod
Kubernetes Pod
Kubernetes Pod
Cloudstate Proxy
(Akka Sidecar)
User Function
(JavaScript, Go, Java,…)
Cloudstate Architecture
User Function
(JavaScript, Go, Java,…)
User Function
(JavaScript, Go, Java,…)
gRPC
70. Kubernetes Pod
Kubernetes Pod
Kubernetes Pod
Cloudstate Proxy
(Akka Sidecar)
User Function
(JavaScript, Go, Java,…)
Cloudstate Architecture
User Function
(JavaScript, Go, Java,…)
User Function
(JavaScript, Go, Java,…)
Datastore
(Cassandra, Postgres, Spanner,…)
gRPC
72. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
73. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
74. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
HTTP
75. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
HTTP
76. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
gRPC
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
HTTP
77. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
gRPC
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
HTTP
Gossip, State replication, Routing
Gossip, State replication, Routing
78. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
Datastore
(Cassandra, Postgres, Spanner,…)
gRPC
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
HTTP
Gossip, State replication, Routing
Gossip, State replication, Routing
79. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
Datastore
(Cassandra, Postgres, Spanner,…)
gRPC
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
gRPC
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
HTTP
gRPC
Gossip, State replication, Routing
Gossip, State replication, Routing
80. Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
Akka Cluster
Datastore
(Cassandra, Postgres, Spanner,…)
gRPC
Kubernetes PodUser Function
(JavaScript, Go, Java,…)
Akka Sidecar
gRPC
Kubernetes Pod
User Function
(JavaScript, Go, Java,…)
Akka Sidecar
gRPC
HTTP
gRPC
Events
Gossip, State replication, Routing
Gossip, State replication, Routing
82. • Pay-as-you-go:
• On-demand Instance Creation, Passivation, and Failover
• Autoscaling—up and down
CloudState helps you with
(when being a managed service)
83. • Pay-as-you-go:
• On-demand Instance Creation, Passivation, and Failover
• Autoscaling—up and down
• ZeroOps:
• Automation of Message Routing and Delivery
• Automation of State Management
• Service of Record—In-Memory Cluster Sharding, Co-location of Data & Processing
• Coordination State—Replication, Consistency
• Automation of Deployment, Provisioning, Upgrades
CloudState helps you with
(when being a managed service)
88. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
89. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
90. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
91. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
92. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
93. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
94. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
95. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Event Log
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
96. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Event Log
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
•Automatic Failover, Rehydration, and
Rebalancing
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
97. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Event Log
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
•Automatic Failover, Rehydration, and
Rebalancing
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
98. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Event Log
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
•Automatic Failover, Rehydration, and
Rebalancing
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
99. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Event Log
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
•Automatic Failover, Rehydration, and
Rebalancing
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
100. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Event Log
Akka Sidecar
Akka Sidecar
Akka Sidecar
•Actor-based Distributed Runtime
•Decentralized Masterless P2P
•Epidemic Gossiping, Self-healing
•State Sharding & Routing on Entity Key
•Forwarding of Requests (if needed)
•Co-Location of State & Processing
•Backed by Event Log
•Automatic Failover, Rehydration, and
Rebalancing
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
101. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•In-memory Replication of State
•Gossiping State Changes
•Using CRDTs
•State Merged on Local Node
•Highly Available (N Replicas)
•Very Scalable
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
102. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•In-memory Replication of State
•Gossiping State Changes
•Using CRDTs
•State Merged on Local Node
•Highly Available (N Replicas)
•Very Scalable
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
103. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•In-memory Replication of State
•Gossiping State Changes
•Using CRDTs
•State Merged on Local Node
•Highly Available (N Replicas)
•Very Scalable
(Key, State)
(Key, State)
(Key, State)
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
(Key, State)
(Key, State)
104. Akka Cluster state management
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Cluster
Akka Sidecar
Akka Sidecar
Akka Sidecar
Akka Sidecar
•In-memory Replication of State
•Gossiping State Changes
•Using CRDTs
•State Merged on Local Node
•Highly Available (N Replicas)
•Very Scalable
https://akka.io
User FunctionUser Function
User Function
User Function
User Function
User Function
User Function
125. Benefits of
Event Sourcing
✴ One single Source of Truth with All history
✴ Allows for Memory Image (Durable In-Memory State)
126. Benefits of
Event Sourcing
✴ One single Source of Truth with All history
✴ Allows for Memory Image (Durable In-Memory State)
✴ Avoids the Object-relational mismatch
127. Benefits of
Event Sourcing
✴ One single Source of Truth with All history
✴ Allows for Memory Image (Durable In-Memory State)
✴ Avoids the Object-relational mismatch
✴ Allows others to Subscribe to state changes
128. Benefits of
Event Sourcing
✴ One single Source of Truth with All history
✴ Allows for Memory Image (Durable In-Memory State)
✴ Avoids the Object-relational mismatch
✴ Allows others to Subscribe to state changes
✴ Has good Mechanical sympathy (Single Writer Principle)
159. syntax = "proto3";
import "cloudstate/entity_key.proto";
package cloudstate.samples.presence;
option java_package = "io.cloudstate.samples.presence";
option java_outer_classname = "PresenceProtos";
Protobuf Descriptor
defining service API and messages
160. syntax = "proto3";
import "cloudstate/entity_key.proto";
package cloudstate.samples.presence;
option java_package = "io.cloudstate.samples.presence";
option java_outer_classname = "PresenceProtos";
"// Messages
message User {
"// Entity key is the unique entity/function identifier
string name = 1 [(.cloudstate.entity_key) = true];
}
message OnlineStatus {
bool online = 1;
}
message Empty {
}
Protobuf Descriptor
defining service API and messages
161. syntax = "proto3";
import "cloudstate/entity_key.proto";
package cloudstate.samples.presence;
option java_package = "io.cloudstate.samples.presence";
option java_outer_classname = "PresenceProtos";
"// Messages
message User {
"// Entity key is the unique entity/function identifier
string name = 1 [(.cloudstate.entity_key) = true];
}
message OnlineStatus {
bool online = 1;
}
message Empty {
}
"// Service API
service Presence {
"// Connect the given user
rpc Connect(User) returns (stream Empty);
"// Monitor the online status of the given user
rpc Monitor(User) returns (stream OnlineStatus);
}
Protobuf Descriptor
defining service API and messages
163. @CrdtEntity
public class PresenceEntity {
private final Vote vote; "// Vote CRDT for this user. It’s auto replicated
"// and keeps track how each node has voted
private final String username; "// Entity Key (for sharding and routing)
public PresenceEntity(
Optional<Vote> vote, CrdtCreationContext ctx, @EntityId String username) { … }
}
CRDT Entity for online presence
164. @CrdtEntity
public class PresenceEntity {
private final Vote vote; "// Vote CRDT for this user. It’s auto replicated
"// and keeps track how each node has voted
private final String username; "// Entity Key (for sharding and routing)
public PresenceEntity(
Optional<Vote> vote, CrdtCreationContext ctx, @EntityId String username) { … }
}
public static void main(String""... args) {
new CloudState()
.registerCrdtEntity(…)
.start();
}
CRDT Entity for online presence
165. @CrdtEntity
public class PresenceEntity {
private final Vote vote; "// Vote CRDT for this user. It’s auto replicated
"// and keeps track how each node has voted
private final String username; "// Entity Key (for sharding and routing)
public PresenceEntity(
Optional<Vote> vote, CrdtCreationContext ctx, @EntityId String username) { … }
}
"// Here we implement the Protobuf Service API, our business logic
@CommandHandler
public void connect(StreamedCommandContext<Empty> ctx) {
vote.vote(true); "// Set the user to online
ctx.onCancel(cancelled "-> { "// Register cancel callback for user disconnect
vote.vote(false);
});
…
}
public static void main(String""... args) {
new CloudState()
.registerCrdtEntity(…)
.start();
}
CRDT Entity for online presence
166. @CrdtEntity
public class PresenceEntity {
private final Vote vote; "// Vote CRDT for this user. It’s auto replicated
"// and keeps track how each node has voted
private final String username; "// Entity Key (for sharding and routing)
public PresenceEntity(
Optional<Vote> vote, CrdtCreationContext ctx, @EntityId String username) { … }
}
"// Here we implement the Protobuf Service API, our business logic
@CommandHandler
public void connect(StreamedCommandContext<Empty> ctx) {
vote.vote(true); "// Set the user to online
ctx.onCancel(cancelled "-> { "// Register cancel callback for user disconnect
vote.vote(false);
});
…
}
public static void main(String""... args) {
new CloudState()
.registerCrdtEntity(…)
.start();
}
CRDT Entity for online presence
@CommandHandler
public OnlineStatus monitor(StreamedCommandContext<OnlineStatus> ctx) {
ctx.onChange(change "-> { "// Subscribe to Vote CRDT changes
…
});
…
}
167. Run in Kubernetes
This step is not needed when user Cloudstate as a Service (as intended)
168. # Install Cloudstate
kubectl create namespace cloudstate
Run in Kubernetes
This step is not needed when user Cloudstate as a Service (as intended)
169. # Install Cloudstate
kubectl create namespace cloudstate
kubectl apply -n cloudstate -f https:"//github.com/
cloudstateio/cloudstate/releases/download/v0.4/
cloudstate-0.4.yaml
Run in Kubernetes
This step is not needed when user Cloudstate as a Service (as intended)
170. # Install Cloudstate
kubectl create namespace cloudstate
kubectl apply -n cloudstate -f https:"//github.com/
cloudstateio/cloudstate/releases/download/v0.4/
cloudstate-0.4.yaml
Run in Kubernetes
# Install our Presence app and Gateway
kubectl apply -f https:"//raw.githubusercontent.com/
cloudstateio/samples-java-chat/master/deploy/
presence.yaml
This step is not needed when user Cloudstate as a Service (as intended)
171. # Install Cloudstate
kubectl create namespace cloudstate
kubectl apply -n cloudstate -f https:"//github.com/
cloudstateio/cloudstate/releases/download/v0.4/
cloudstate-0.4.yaml
Run in Kubernetes
# Install our Presence app and Gateway
kubectl apply -f https:"//raw.githubusercontent.com/
cloudstateio/samples-java-chat/master/deploy/
presence.yaml
kubectl apply -f https:"//raw.githubusercontent.com/
cloudstateio/samples-java-chat/master/deploy/
gateway.yaml
This step is not needed when user Cloudstate as a Service (as intended)
172. # Install Cloudstate
kubectl create namespace cloudstate
kubectl apply -n cloudstate -f https:"//github.com/
cloudstateio/cloudstate/releases/download/v0.4/
cloudstate-0.4.yaml
Run in Kubernetes
# Install our Presence app and Gateway
kubectl apply -f https:"//raw.githubusercontent.com/
cloudstateio/samples-java-chat/master/deploy/
presence.yaml
kubectl apply -f https:"//raw.githubusercontent.com/
cloudstateio/samples-java-chat/master/deploy/
gateway.yaml
# Scale up the app to 3 nodes
kubectl scale deploy/presence-deployment "--replicas 3
This step is not needed when user Cloudstate as a Service (as intended)