Skip to content
  • Products
    • MicroStream for Java
    • MicroStream for Android
    • MicroStream Serialization
  • Community
    • GitHub
    • Discussion
    • Contribute
    • Issues
    • StackOverflow
  • Editions
    • MicroStream Enterprise Edition
    • Edition Comparison
  • Resources
    • Get Started
    • Docs
    • Examples
    • Videos
    • Blog
    • Release & Update Plan
    • Edition Comparison
  • Services
    • Support
    • Training
  • Company
    • About us
    • Contact
    • Imprint
  • Subscribe to our Newsletter
  • User icon Sign in

Cookie

We use cookies to make it easier to use and to further improve our service.

If you have given us your consent, you can revoke it at any time in the data protection declaration.

Use all cookies Manage cookies Reject cookies

Cookie

?
?
?
Use all cookiessave settingsReject cookiesView Privacy Policy

Necessary

Necessary cookies help make a website usable by enabling basic functions such as page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

Name Anbieter Zweck Ablauf Typ
c3kie_removeCookieWindow microstream.one Saves the consent status of the user whether the cookie window should be displayed. 1 Jahr HTML Local Storage
c3kie_googleAnalytics microstream.one Saves the consent status of the user as to whether Google Analytics is allowed to run. 1 Jahr HTML Local Storage
c3kie_googleAnalytics microstream.one Saves the consent status of the user as to whether Google Analytics is allowed to run. 1 Jahr HTML Local Storage
c3kie_tagManager microstream.one Saves the consent status of the user as to whether Google Tag Manager is allowed to run. 1 Jahr HTML Local Storage
c3kie_facebook microstream.one Saves the consent status of the user as to whether Facebook is allowed to run. 1 Jahr HTML Local Storage
c3kie_matomo microstream.one Saves the consent status of the user as to whether Matomo is allowed to run. 1 Jahr HTML Local Storage
c3kie_youtube microstream.one Saves the consent status of the user as to whether YouTube is allowed to run. 1 Jahr HTML Local Storage

Statistics

Statistics cookies help website owners understand how visitors interact with websites by collecting and reporting information anonymously.

Name Anbieter Zweck Ablauf Typ
_dc_gtm_ Google Used by Google Analytics to limit the request rate. 1 Jahr HTTP Cookie
_gid_ Google Registers a unique ID that is used to generate statistical data on how the visitor uses the website. 2 Jahre HTTP Cookie
_gcl_au Google Used to send data to Google Analytics about the device and visitor behavior. Captures the visitor across devices and marketing channels. Session Pixel Tracker
_gat_ Google Used to store a unique user ID. 1 Tag HTTP Cookie
_gat_gtag_UA_ Google Used to store a unique user ID. 1 Tag HTTP Cookie
yt-player-headers-readable YouTube Used to determine the optimal video quality based on the visitor's device and network settings. Persistent HTML Local Storage

Marketing

Marketing cookies are used to track visitors across websites. The intent is to show ads that are relevant and engaging to the individual user, making them more valuable to publishers and third party advertising providers.

Name Anbieter Zweck Ablauf Typ
VISITOR_INFO1_LIVE YouTube Tries to estimate the range of users on pages with built-in YouTube videos. 179 Tage HTTP Cookie
YSC YouTube Registers a unique ID to keep statistics on which videos from YouTube the user has seen. Session HTTP Cookie
yt.innertube::nextId YouTube Registers a unique ID to keep statistics on which videos from YouTube the user has seen. Persistent HTML Local Storage
yt.innertube::requests YouTube Registers a unique ID to keep statistics on which videos from YouTube the user has seen. Persistent HTML Local Storage
ytidb::LAST_RESULT_ENTRY_KEY YouTube Saves the user's video player settings with embedded YouTube video. Persistent HTML Local Storage
yt-remote-cast-available YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-cast-installed YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-connected-devices YouTube Saves the user's video player settings with embedded YouTube video. Persistent HTML Local Storage
yt-remote-device-id YouTube Saves the user's video player settings with embedded YouTube video. Persistent HTML Local Storage
yt-remote-fast-check-period YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-session-app YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-session-name YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage

The Future is Serverless – with MicroStream

Apr152022
BlogNews

This is an impressive prediction by Adam Bien and was the title of his keynote session at our first MicroStream Summit. The recorded session is now ready to watch in your MicroStream account. Log in or just create your free account and get access to all premium videos and on-demand courses: https://microstream.one/account/

What is Serverless actually?

In the serverless computing model, the cloud provider allocates machine resources on demand. Developers are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, or VMs. Different from VMs and conventional containers managed with Kubernetes, in the serverless model there are no costs when an app is not in use. Pricing is based on the actual amount of resources consumed by an app. No activity, no charges. You can even measure and calculate the costs of every single business transaction, for instance how expensive is a particular order, report, or backup, and finally, you will see it on the monthly invoice of your provider.

Cloud-native can be cheeper

Today, Kubernetes is state of the art to run microservices containerized in the cloud. Unfortunately, Kubernetes is complex to use and expensive. No matter if you run a container or not, you will have base costs for running your Kubernetes cluster. It’s not only your production system. Actually, you also should have numerous of development and testing environments. That’s why many cloud projects run out of money. The only thing you really need in the cloud is something that starts and stops your containers. For your Java code there is no difference whether it runs on Kubernetes or something Docker-based.

In Amazon Web Services (AWS), the most obvious choice is AWS Fargate. Fargate is serverless option with Amazon Elastic Container Service (ECS), which is a container management service to run containers without having to manage servers or clusters of Amazon EC2 instances. Fargate is simple to use. The configuration is about 20 lines of JSON code. YAML is not needed. It’s a way simpler than Kubernetes and you have no base costs for your environment.

Running microservices as Lambdas

Even more interesting is AWS Lambda. It is an event-driven, serverless computing service that runs code in response to events and automatically manages all resources required by that code. If an event occurs, a related lambda is invoked, executes the Java code and falls asleep again. You only have to pay for the execution time. Lambdas that are not running are not charged. The cold-start of a Lambda is slow. It can take seconds. However, all subsequence starts are much faster (only some milliseconds). Astonishingly, Java code running within a Lambda is even faster than the other supported languages like Python or TypeSript, because of Java’s JIT compiler. The size of a single Lambda is usually about 10 classes. So, microservices can be executes as Lambdas. Even “fat functions” are still tiny. To reduce startup-time you can optional use GraalVM. Thus, by using Lambda with Java, you can save money and in addition to that, with Java you are able to write significant larger and more complex apps running within a Lambda. Microsoft Azure provides a similar architecture.

If you use synchronous Lambdas you can use JAX-RS, bean validation and even CDI, but if you use asynchronous Lambdas you don’t need MicroProfile or any framework at all, because you get JSON objects from the outside world already deserialized and you can focus on business logic.

Lambdas using MicroStream

With MicroStream you can add state to the stateless world. The problem with Lambdas is, that Lambdas are stateless. In all serverless runtimes, the functions are invoked, execute code, and go to sleep again. Hereby, the function loses its state. However, you will have to work with the state. To solve this problem you can persist the state of your Lambda as JSON in AWS S3 or Amazon DynamoDB. S3 is an object storage service. DynamoDB is a NoSQL database. S3 is Amazon’s cheapest data storage. Compared to DynamoDB, S3 is about 10x cheeper. However, to serialize objects into JSON format and vice versa you have to write ugly boilerplate code. More complex object graphs using circular references cannot be serialized into JSON at all.

MicroStream basically enables you to store any Java object as a blob in a very simple and object-oriented, convenient way somewhere, for instance in a plain file or in AWS S3. So, MicroStream and S3 are a great fit. Now, with MicroStream you can read the state of a Lamda from S3, work with it, and finally write it back to S3. This is an optimization that will be visible on your monthly invoice. The nice thing is how clean the code looks like. There are various serialization frameworks out there, but MicroStream has deciding benefits: Implementing the interface java.io.Serializeable is not mandatory, thus any Java object and even objects from 3rd-party APIs can be serialized. Serializing object graphs of any size and complexity is possible. Circular references are troublefree. The depth of an object graph is not limited, there is no stack-based recursion. Last but not least, you can serialize any POJO. To use MicroStream, there are no specific interfaces, superclasses or annotations required.

 

Watsch now: https://microstream.one/account/

 

About Adam Bien:

Adam Bien is a Java Champion, freelancer, book author, keynote speaker, consultant, architect, trainer, podcaster, and Java enthusiast who uses Java since JDK 1.0. He regularly organizes Java / Web / Architecture online live workshops and a monthly Q&A live streaming show onĀ airhacks.tv.

Categories: Blog, NewsApril 15, 2022Leave a comment

Author: micro_admin

https://microstream.one/blog

Post navigation

PreviousPrevious post:MicroStream Fundamentals CourseNextNext post:MicroStream at Devoxx UK 2022

Related Posts

MicroStream - Revolutionizing Data Storage
Why MicroStream?
May 24, 2022
MicroStream at WeAreDevelopers World Congress
May 17, 2022
MicroStream-Version-7
Logging Feature of MicroStream Version 7
May 13, 2022
MicroStream version 7
MicroStream 7.0 Release
April 27, 2022
Devoxx-UK-2022
MicroStream at Devoxx UK 2022
April 20, 2022
MicroStream-Version-7
MicroStream 7 Overview
April 7, 2022

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Post comment

Search
Related Posts
  • MicroStream - Revolutionizing Data Storage
    Why MicroStream?
    May 24, 2022
  • MicroStream at WeAreDevelopers World Congress
    May 17, 2022
  • MicroStream-Version-7
    Logging Feature of MicroStream Version 7
    May 13, 2022
Tags
Android AWS booth Cluster Conference Data Persistence Discussion event framework free fundamentals Germany GitHub GraalVM Hackathon Heldion InfoQ Integration Java Java 17 JAVAPRO JCON JVM Con logging Micronaut MicroProfile Microservices MicroStream MicroStream 2 MicroStream 4 MicroStream 6 MicroStream Day online Open Liberty Open Source Oracle Oracle CodeOne public release San Francisco Serialization Subscription Support Training Webcast
MicroStream

Store Java Object Graphs natively, relieved of heavy-weight DBMS Dependencies. Create ultra-fast In- Memory Database Applications & Microservices with Pure Java. The Pure Java Paradigm Shift in Database Development.

Upcoming Event

May 17-18, 2022 - 09:00 - 16:00 CET. In this 2-days online live training you will learn: Functional principle, designing a suited object model,…
Read more

Platforms

  • MicroStream for Java
  • MicroStream for Android

Community

  • GitHub
  • Discussion
  • Contribute
  • Issues
  • StackOverflow
  • MeetUp

Editions

  • MicroStream Enterprise Edition
  • License Comparison

Resources

  • Get Started
  • Docs
  • Examples
  • Videos
  • Blog
  • Release plan
  • License Comparison

Services

  • Support
  • Training

Company

  • About us
  • Contact

Stay Connected

  • Twitter
  • LinkedIn
  • YouTube
  • GitHub
  • StackOverflow
  • MeetUp

Get the latest MicroStream news:

Subscribe

© 2022 MicroStream Software. All rights reserved.
  • Imprint
  • Terms of use
  • Privacy
  • Legal notice

Cookie

We use cookies to make it easier to use and to further improve our service.

If you have given us your consent, you can revoke it at any time in the data protection declaration.

Use all cookies Manage cookies Reject cookies

Cookie

?
?
?
Use all cookiessave settingsReject cookiesView Privacy Policy

Necessary

Necessary cookies help make a website usable by enabling basic functions such as page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

Name Anbieter Zweck Ablauf Typ
c3kie_removeCookieWindow microstream.one Saves the consent status of the user whether the cookie window should be displayed. 1 Jahr HTML Local Storage
c3kie_googleAnalytics microstream.one Saves the consent status of the user as to whether Google Analytics is allowed to run. 1 Jahr HTML Local Storage
c3kie_googleAnalytics microstream.one Saves the consent status of the user as to whether Google Analytics is allowed to run. 1 Jahr HTML Local Storage
c3kie_tagManager microstream.one Saves the consent status of the user as to whether Google Tag Manager is allowed to run. 1 Jahr HTML Local Storage
c3kie_facebook microstream.one Saves the consent status of the user as to whether Facebook is allowed to run. 1 Jahr HTML Local Storage
c3kie_matomo microstream.one Saves the consent status of the user as to whether Matomo is allowed to run. 1 Jahr HTML Local Storage
c3kie_youtube microstream.one Saves the consent status of the user as to whether YouTube is allowed to run. 1 Jahr HTML Local Storage

Statistics

Statistics cookies help website owners understand how visitors interact with websites by collecting and reporting information anonymously.

Name Anbieter Zweck Ablauf Typ
_dc_gtm_ Google Used by Google Analytics to limit the request rate. 1 Jahr HTTP Cookie
_gid_ Google Registers a unique ID that is used to generate statistical data on how the visitor uses the website. 2 Jahre HTTP Cookie
_gcl_au Google Used to send data to Google Analytics about the device and visitor behavior. Captures the visitor across devices and marketing channels. Session Pixel Tracker
_gat_ Google Used to store a unique user ID. 1 Tag HTTP Cookie
_gat_gtag_UA_ Google Used to store a unique user ID. 1 Tag HTTP Cookie
yt-player-headers-readable YouTube Used to determine the optimal video quality based on the visitor's device and network settings. Persistent HTML Local Storage

Marketing

Marketing cookies are used to track visitors across websites. The intent is to show ads that are relevant and engaging to the individual user, making them more valuable to publishers and third party advertising providers.

Name Anbieter Zweck Ablauf Typ
VISITOR_INFO1_LIVE YouTube Tries to estimate the range of users on pages with built-in YouTube videos. 179 Tage HTTP Cookie
YSC YouTube Registers a unique ID to keep statistics on which videos from YouTube the user has seen. Session HTTP Cookie
yt.innertube::nextId YouTube Registers a unique ID to keep statistics on which videos from YouTube the user has seen. Persistent HTML Local Storage
yt.innertube::requests YouTube Registers a unique ID to keep statistics on which videos from YouTube the user has seen. Persistent HTML Local Storage
ytidb::LAST_RESULT_ENTRY_KEY YouTube Saves the user's video player settings with embedded YouTube video. Persistent HTML Local Storage
yt-remote-cast-available YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-cast-installed YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-connected-devices YouTube Saves the user's video player settings with embedded YouTube video. Persistent HTML Local Storage
yt-remote-device-id YouTube Saves the user's video player settings with embedded YouTube video. Persistent HTML Local Storage
yt-remote-fast-check-period YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-session-app YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage
yt-remote-session-name YouTube Saves the user's video player settings with embedded YouTube video. Session HTML Local Storage