The goal of the book is to provide a guide for those who really need to implement the In-memory platform in their projects. At the same time, the idea behind the book is not writing a manual.
This book covers a verity of topics, including in-memory data grid, highly available service grid, streaming (event processing for IoT and fast data) and in-memory computing use cases from high-performance computing to get performance gains. The book will be particularly useful for those, who have the following use cases:
1) You have a high volume of ACID transactions in your system. 2) You have database bottleneck in your application and want to solve the problem. 3) You want to develop and deploy Microservices in a distributed fashion. 4) You have an existing Hadoop ecosystem (OLAP) and want to improve the performance of map/reduce jobs without making any changes in your existing map/reduce jobs.. 5) You want to share Spark RDD directly in-memory (without storing the state into the disk), which can dramatically increase the performance of the Spark jobs. 6) You are planning to migrate to microservices and the web session clustering is the problem for you. 7) You are planning to process continuous never-ending streams and complex events of data in a scalable and fault-tolerant fashion. 8) You want to use distributed computations in parallel fashion to gain high performance, low latency, and linear scalability. 9)You want to accelerate applications performance without changing code.
What you will learn:
1) In-memory data fabrics use-cases and how it can help you to develop near real-time applications. 2) In-memory data fabrics detail architecture. 3) Caching strategies and how to use In-memory caching to improve the performance of the applications. 4) SQL grid for in-memory caches. 5) How to accelerates the performance of your existing Hadoop ecosystem without changing any code. 6) Sharing Spark RDD states between different Spark applications for improving performance. 7) Processing events & streaming data, integrate Apache Ignite with other frameworks like Storm, Camel, etc. 8) Using distributed computing for building low-latency software. 9) Developing distributed Microservices in fault-tolerant fashion.
For every topic, a complete application is delivered, which will help the audience to quick start with the topic. The book is a project-based guide, where each chapter focuses on the complete implementation of a real-world scenario, the commonly occurring challenges in each scenario has also discussed, along with tips and tricks and best practices on how to overcome them. Every chapter is independent and a complete project.
Readership:
Target audience of this book will be IT architect, team leaders, a programmer with minimum programming knowledge, who want to get the maximum performance from their applications.
No excessive knowledge is required, though it would be good to be familiar with JAVA and Spring framework. The book is also useful for any reader, who already familiar with Oracle Coherence, Hazelcast, Infinispan or memcached.
I am still in the midst of reading the book. My first impression is that the content is great, touching of the most important concepts of caching with many examples sprinkled around for better understanding. Chapter 2 is very important for a newcomer in the in-memory computing world. Chapter two described all the important topics of the in-memory caches and fills the gap between Ignite documentation and the theoretical part that lacks the documentation. Chapter 3/5/7 covers all the necessary concepts with many real-world examples for better understanding. It's quite a comprehensive and easy to follow with the examples and diagrams provided. But all examples I have seen. So far seem to be java based. It would be good if you provide some examples using.NET and C++. Chapter 3 content is very basic. It has very basic examples for SQL queries. there were many limitations in apache ignite. it would be good if advanced queries covered in the book. Most of the week I have got updates from the author to update the book by leanpub, seems in every update they worked on editing and proof-reading and now the book is easy to follow and nice to read. My rating is 4 out of 5.
In recent times I've had some projects based on Apache Ignite, two of which are finished and the third one is ongoing. They were using different features of this IMDG so it was a good chance to get a good look into it from different sides and to implement new functionality based on this knowledge. So when I've heard about newly appreared Ignite book I was curious to read it as it could provide more insights on using Ignite.
Well, personally, I didn't like this book. The main reason for this is that this book does not provide much of new information compared to official documentation. Yes, it gives you an overview of what IMDG is (like docs), it provides you with examples of using specific features (like docs too) and basically that is all. I've found only a couple of examples based on experience, where author gave you some specific tips. This book is centered around GitHub repository with examples which is a 2-sided coin: indeed, repository with full example will give you a working app which you can use, debug or do whatever you want, but this also means that reading this book without navigating to repository (like when I was reading it on Kindle) is kind of useless - author provides necessary theory, but a lot of details of code are omitted, despite that author tries to explain it afterwards. Also due to the fact that the most actual code is located on GitHub it appears outdated in the book, like in "Chapter three: In-memory caching" - ONHEAP_TIERED, where main() method does not use any of the args array, but nonetheless arguments are provided to java process (yep, that is nothing special, but there are a number of such examples, which are misleading for a reader).
Talking about examples, they are different and numerous, with good and bad ones. E.g. I loved examples of microservice architecture with REST layer, but example of compute task with manual mapping of jobs to nodes looked like an over-engineering for that case. Besides examples themselves there are problems with much more basic stuff like naming - some classes and packages are named with contradiction to JCC (e.g. class scanQuery) which provides bad examples for junior developers. Some examples I even consider harmful, e.g. CacheStore example is working outside of any transaction, so first rollbacked transaction will leave you with unsynchronized cache and RDBMS, but this is never mentioned in the book (btw, official docs provide you with an example of transactional store). Also for an unknown reason examples in the book, published in 2016, are based on Apache Ignite 1.6.0 (one chapter tells us about 1.7.0, but is is a typo, as 1.6.0 is used in pom.xml). This is a least strange as 1.6.0 had a number of bugs with deadlocks and transactions.
Apache Ignite docs suffer with contradictory comparisons with other IMDGs and in this book we may see another factual error: it states that Hazelcast (the main competitor of Ignite) unlike Ignite does not support SQL queries over caches, but official Hazelcast documentation can't agree with it. This feature was added long ago before book publishing, according to date in the title.
Last but not least is a tremendous number of typos in the book. That distracts and leaves you with a feeling that no one even processed the book at least through spellchecking tool, which frustrates me as a reader. The number of typos increases in the end, also there are references to a missing picture there (Chapter seven: Distributed computing, before Service Grid).
So, summing up: if you want to become familiar with Ignite I strongly recommend to read official documentation located on Apache Ignite page first and probably check some open source projects with it. Personally for me it was enough to start using basic features of this IMDG. If you still need additional examples along with detailed description of them, then probably this book will fit your needs.
I'd like to finish this review with a citation from a book which I loved the most: "Writing such boilerplate code for integration systems prevents developers to focus on business logics, also such boilerplate code was error porn."
I loved it right from the beginning. The authors wrote this book keeping a developer in mind and built it up for the Solution and Enterprise Architects for solutions. While doing so, it does not bore the developer either. In my experience, this is a gigantic task as the aspects of a developer and an architect are different in many ways. Glad to mention that the authors have nicely achieved this monumental job.
The goal of the book is to provide a guide for those who really need to implement the In-memory platform in their projects. At the same time, the idea behind the book is not writing a manual.
This book wraps all the topics like in-memory data grid, highly available service grid, streaming and in-memory computing use cases from high-performance computing to get the performance gain. The book will be particularly useful for those, who have the following use cases:
You have database bottleneck in your application and want to solve the problem. You are planning to migrate to microservices and the web session clustering is the problem for you. You have a high volume ACID transaction in your system. You have existing Hadoop ecosystem (OLAP) and want to improve the performance of the Map/Reduce jobs without making any changes in your Map/Reduce jobs. You are planning to process continuous never-ending streams and complex events of data in scalable and fault-tolerant fashion. You want to use distributed computations in parallel fashion to gain high performance, low latency, and linear scalability. You heard about Off-heap memory but don't know how to use it in your application. For every topic, a complete application is delivered, which will help the audience to quick start with the topic. The book is a project-based guide, where each chapter focuses on the complete implementation of a real-world scenario, the commonly occurring challenges in each scenario has also discussed, along with tips and tricks and best practices on how to overcome them. Every chapter is independent and a complete project. Target audience of this book will be IT architect, team leaders, a programmer with minimum programming knowledge, who want to get the maximum performance from their applications.
I purchased this book from leanpub and I must let you know the incredible job you have done here. The big myth words have been demystified with simple examples. So good for learning. The book provides a very good balance between the theory and the practice. After reading the first few chapters, you can build your prototype in Ignite grid. Looking forward to more of your works.