Skip to main content

Tech Conversant Weekly Feb 06 - Feb 11

Topic: General                                                                                                                Level: All

Welcome to the world of cutting-edge technology! Every week, we bring you the latest and greatest advancements in the tech industry that are sure to leave you feeling inspired and empowered.

Stay ahead of the game and be the first to know about the newest innovations that are shaping our world. Discover new ways to improve your daily life, become more efficient, and enjoy new experiences.

This week, we've got some exciting news to share with you!

Massive migrations from monolith to microservices can be daunting and cumbersome, however, teams at the Khan academy have proven otherwise.
With insights and guidelines, this case study emphasizes the learnings and experiences, and adaptability as they evolved.
1. Setting the stage and objective 
2. Settling on a tech stack 
3. MVE Minimum viable Experience 
4. Application request routing and management 
5. Functionality conformity 
6. Incremental shipping 
7. Write isolation for data consistency
8. Fixed scope migration 
9. Effective trade-off in product features and tech migration 
10. Realization of the rewarding journey
And additional words of wisdom.

Wrapping the datasource bean with a proxy such as a micrometer intercepts the JDBC calls for Zipkin log management thereby enabling monitor the query invocations and their latency

With JDK20 set to release on 21st March 2023, it brings about a range of features across projects like Loom, Amber, and Panama 
From Loom,
1. ScopedValue to facilitate virtual thread with thread-locals for data sharing. By binding an object to the scoped value within the lifetime of the method that is invoked the object is accessible as well as immutable 
2. Virtual Threads - new overloaded methods join() and sleep() taking Duration as an argument, threadId() returning the thread identifier, and Future interface with new methods like resultNow() without throwing an exception, exceptionNow() returns an exception from a task, and state() returning an enum of the future states it is in, and ExecutorService interface extends AutoClosable for try-with-resources 
3. Structured concurrency - updated StructuredTaskScope for the inheritance of scoped values by threads created in a task scope.
Amber,
1. Record patterns - the interface of type arguments for generic patterns, in for loops for direct variable access, and removal of named record pattern for accessing the variables 
2. Pattern matching for switch - with record patterns, MatchException for the exhaustive switch and interface of type arguments for generic record patterns in switch expression and statements 
Panama,
1. Foreign function and memory API - as a replacement for JNI (Java Native Interface)

Java records are immutable and abstract away the process of encapsulation, equals, hashCode, and toString representations. 
Ideally specifying a record as a JPA entity would make sense, however, the downsides are realized by, 
1. Entity cannot be final 
2. Entity requires a default constructor in contrast to the canonical record constructor 
3. Unique identifier definition 
Hence the DTO projections are the only candidates for the record classes.
Yet,
Embeddable classes are used to represent the state of an entity but don't have a persistent identity of their own, unlike entity classes. Instances of an embeddable class share the identity of the entity that owns it.
With the above JPA definition for Embeddable annotation, 
We can specify a class as a record and make it an Embedded one onto the JPA entity from Hibernate 6

Allocation Pacing of the Azul C4 GC assists in the delays involved in allocating the memory space to the application based on the allocation rate of the application when it approaches the heap usage

Disclaimer: 
This is a personal blog. Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in a professional or personal capacity, unless explicitly stated. Any views or opinions are not intended to malign any religion, ethnic group, club, organization, company, or individual. All content provided on this blog is for informational purposes only. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. The owner will not be liable for any errors or omissions in this information nor for the availability of this information. The owner will not be liable for any losses, injuries, or damages from the display or use of this information.
Downloadable Files and ImagesAny downloadable file, including but not limited to pdfs, docs, jpegs, pngs, is provided at the user’s own risk. The owner will not be liable for any losses, injuries, or damages resulting from a corrupted or damaged file.
  • Comments are welcome. However, the blog owner reserves the right to edit or delete any comments submitted to this blog without notice due to :
  • Comments deemed to be spam or questionable spam.
  • Comments including profanity.
  • Comments containing language or concepts that could be deemed offensive.
  • Comments containing hate speech, credible threats, or direct attacks on an individual or group.
The blog owner is not responsible for the content in the comments. This blog disclaimer is subject to change at any time.

Comments

Popular posts from this blog

Tech Conversant Weekly Jul 03 - Jul 15

Topic: General                                                                                                                                              Level: All Welcome to the world of cutting-edge technology! Every bi-week, we bring you the latest and most incredible advancements in the tech industry that are sure to leave you feeling inspired and empowered. Stay ahead of the game and be the first to know about the newest innovations shaping our world. Discover new ways to improve your daily life, become more efficient, and enjoy new experiences. This time, we've got some exciting news to share with you! Boosting Java startup with Class Data Sharing (CDS) https://www.youtube.com/watch?v=vvlQv1Dh-HU JDK21 LTS Maintenance and Support https://www.youtube.com/watch?v=3bfR22iv8Pc Health checking of multiple cloud applications with Spring Cloud Gateway https://spring.io/blog/2023/07/05/active-health-check-strategies-with-spring-cloud-gateway Functional Style Non-reactive HTTP clie

Tech Conversant Weekly Jun 19 - Jul 01

Topic: General                                                                                                                                              Level: All Welcome to the world of cutting-edge technology! Every bi-week, we bring you the latest and most incredible advancements in the tech industry that are sure to leave you feeling inspired and empowered. Stay ahead of the game and be the first to know about the newest innovations shaping our world. Discover new ways to improve your daily life, become more efficient, and enjoy new experiences. This time, we've got some exciting news to share with you! Modelling common behaviors between the List and the Set interface has been partially provided by LinkedHashSet. Now from JDK21 with the new interface SequencedCollection extending the Collection interface and is also extended by the List, SortedSet via SequencedSet (for reversal operation), Deque. The SequencedMap interface extends the Map interface by providing the below me

Microservices - Design Patterns

Topic: Software Design                                                                                                        Level: Intermediate Microservices - What? Microservice is a software design methodology, delegated to perform an isolated decoupled single functionality (following the Single-Responsibility Principle from object-oriented SOLID design principles).  Moreover, microservices by design, are decoupled making it easy to develop, test, maintain, deploy, configure, monitor and scale modules independently. Microservices - Why? Having one microservice would not be helpful without it being able to interact with other microservices, to aid in bringing an end-to-end business solution. So arises a question, how can I design a software system that is resilient, decentralized, fault-tolerant, scalable, maintainable, and extensible that complies with the microservice architecture? Design Patterns - What? Design patterns are solutions for commonly occurring problems within a given