Akka in Action is a comprehensive tutorial on building message-oriented systems using Akka. The book takes a hands-on approach, where each new concept is followed by an example that shows you how it works, how to implement the code, and how to (unit) test it.
About the Technology
Akka more » makes it relatively easy to build applications in the cloud or on devices with many cores that efficiently use the full capacity of the computing power available. It's a toolkit that provides an actor programming model, a runtime, and required support tools for building scalable applications.
About the Book
Akka in Action shows you how to build message-oriented systems with Akka. This comprehensive, hands-on tutorial introduces each concept with a working example. You'll start with the big picture of how Akka works, and then quickly build and deploy a fully functional REST service out of actors. You'll explore test-driven development and deploying and scaling fault-tolerant systems. After mastering the basics, you'll discover how to model immutable messages, implement domain models, and apply techniques like event sourcing and CQRS. You'l also find a tutorial on building streaming applications using akka-stream and akka-http. Finally, you'l get practical advice on how to customize and extend your Akka system.
* Getting concurrency right
* Testing and performance tuning
* Clustered and cloud-based applications
* Covers Akka version 2.4
About the Reader
This book assumes that you're comfortable with Java and Scala. No prior experience with Akka required.
About the Authors
A software craftsman and architect, Raymond Roestenburg is an Akka committer. Rob Bakker specializes in concurrent back-end systems and systems integration. Rob Williams has more than 20 years of product development experience.
Table of Contents
1. Introducing Akka
2. Up and running
3. Test-driven development with actors
4. Fault tolerance
6. Your first distributed Akka app
7. Configuration, logging, and deployment
8. Structural patterns for actors
9. Routing messages
10. Message channels
11. Finite-state machines and agents
12. System integration
15. Actor persistence
16. Performance tips
17. Looking ahead « less
A Practical, Case-Study Approach
Build straightforward and maintainable APIs to create services that are usable and maintainable. Although this book focuses on distributed services, it also emphasizes how the core principles apply even to pure OOD and OOP constructs.
The overall context of Creating Maintainable APIs is to classify more » the topics into four main areas: classes and interfaces, HTTP REST APIs, messaging APIs, and message payloads (XML, JSON and JSON API as well as Apache Avro).
What You Will Learn:
* Use object-oriented design constructs and their APIs
* Create and manage HTTP REST APIs
* Create and manage maintainable messaging APIs, including the use of Apache Kafka as a principal messaging hub
* Handle message payloads via JSON
Who This Book Is For:This book is for any level software engineers and very experienced programmers. « less
Build real-world, production-ready solutions in Go using cutting-edge technology and techniques
ABOUT THIS BOOK
* Get up to date with Go and write code capable of delivering massive world-class scale performance and availability
* Learn to apply the nuances of the Go language, and get to know the open source community that surrounds it to implement a wide range of start-up quality projects
* more » Write interesting and clever but simple code, and learn skills and techniques that are directly transferrable to your own projects
WHO THIS BOOK IS FOR
If you are familiar with Go and are want to put your knowledge to work, then this is the book for you. Go programming knowledge is a must.
WHAT YOU WILL LEARN
* Build quirky and fun projects from scratch while exploring patterns, practices, and techniques, as well as a range of different technologies
* Create websites and data services capable of massive scale using Go's net/http package, exploring RESTful patterns as well as low-latency WebSocket APIs
* Interact with a variety of remote web services to consume capabilities ranging from authentication and authorization to a fully functioning thesaurus
* Develop high-quality command-line tools that utilize the powerful shell capabilities and perform well using Go's in-built concurrency mechanisms
* Build microservices for larger organizations using the Go Kit library
* Implement a modern document database as well as high-throughput messaging queue technology to put together an architecture that is truly ready to scale
* Write concurrent programs and gracefully manage the execution of them and communication by smartly using channels
* Get a feel for app deployment using Docker and Google App Engine
Go is the language of the Internet age, and the latest version of Go comes with major architectural changes. Implementation of the language, runtime, and libraries has changed significantly. The compiler and runtime are now written entirely in Go. The garbage collector is now concurrent and provides dramatically lower pause times by running in parallel with other Go routines when possible.
This book will show you how to leverage all the latest features and much more. This book shows you how to build powerful systems and drops you into real-world situations. You will learn to develop high-quality command-line tools that utilize the powerful shell capabilities and perform well using Go's in-built concurrency mechanisms. Scale, performance, and high availability lie at the heart of our projects, and the lessons learned throughout this book will arm you with everything you need to build world-class solutions. You will get a feel for app deployment using Docker and Google App Engine. Each project could form the basis of a start-up, which means they are directly applicable to modern software markets.
STYLE AND APPROACH
This book provides fun projects that involve building applications from scratch. These projects will teach you to build chat applications, a distributed system, and a recommendation system. « less
A Problem-Solution Approach
Solve your Go problems using a problem-solution approach. Each recipe is a self-contained answer to a practical programming problem in Go. Go Recipes contains recipes that deal with the fundamentals of Go, allowing you to build simple, reliable, and efficient software. Other topics include working with more » data using modern NoSQL databases such as MongoDB and RethinkDB. The book provides in-depth guidance for building highly scalable backend APIs in Go for your mobile client applications and web client applications.
All this means that you’ll be able to write programs that get the most out of multicore and networked machines, using Go’s novel type system that enables flexible and modular program construction. You'll see how to test your Go applications so they are ready for deployment, as well as learning how to write HTTP servers to offer you maximum flexibility when dealing with remote clients.
What You'll LearnWork with the core fundamentals of GoPersist data into NoSQL databasesBuild scalable backend APIsTest your Go applicationsCreate HTTP web servers in Go
Who This Book Is For
Experienced programmers who have some or no prior experience with Go. « less
Explore and learn about Internet of Things with the help of engaging and enlightening tutorials designed for Raspberry Pi
This book starts by exploring the popular HTTP, UPnP, CoAP, MQTT, and XMPP protocols. You will learn how protocols and patterns can put limitations on network topology and how they affect the direction of communication and the use of firewalls. Thing registries and delegation of trust are introduced more » as important tools to secure the life cycle of Things on the Internet. Once the fundamentals have been mastered, your focus will move to the Internet of Things architecture. A secure architecture is proposed that will take full advantage of the power of Internet of Things and at the same time protect end user integrity and private personal data without losing flexibility and interoperability.
This book provides you with a practical overview of the existing protocols, communication patterns, architectures, and security issues important to Internet of Things. « less
With HTTP Succinctly, you’ll learn all about something you use on a daily basis, perhaps without realizing what goes on behind the scenes. Equipped with the information in this book, you’ll be able to write better web apps and services, and debug them when something goes wrong.
Despite all the advancements in web APIs and interoperability, it's inevitable that, at some point in your career, you will have to "scrape" content from a website that was not built with web services in mind. And, despite its sometimes less-than-stellar reputation, web scraping is usually an entire more » legitimate activity-for example, to capture data from an old version of a website for insertion into a modern CMS. This book, written by scraping expert Matthew Turland, covers web scraping techniques and topics that range from the simple to exotic using a variety of technologies and frameworks: · Understanding HTTP requests · The PHP HTTP streams wrapper · cURL · pecl_http · PEAR:HTTP · Zend_Http_Client · Building your own scraping library · Using Tidy · Analyzing code with the DOM, SimpleXML and XMLReader extensions · CSS selector libraries · PCRE pattern matching · Tips and Tricks · Multiprocessing / parallel processing « less
Behind every web transaction lies the Hypertext Transfer Protocol (HTTP) - the language of web browsers and servers, of portals and search engines, of e-commerce and web services. Understanding HTTP is essential for practically all web-based programming, design, analysis, and administration.
While more » the basics of HTTP are elegantly simple, the protocol's advanced features are notoriously confusing, because they knit together complex technologies and terminology from many disciplines. « less
Java RMI contains a wealth of experience in designing and implementing Java's Remote Method Invocation. If you're a novice reader, you will quickly be brought up to speed on why RMI is such a powerful yet easy to use tool for distributed programming, while experts can gain valuable experience for constructing more » their own enterprise and distributed systems.
With Java RMI, you'll learn tips and tricks for making your RMI code excel. The book also provides strategies for working with serialization, threading, the RMI registry, sockets and socket factories, activation, dynamic class downloading, HTTP tunneling, distributed garbage collection, JNDI, and CORBA. In short, a treasure trove of valuable RMI knowledge packed into one book. « less
TCP for Transactions, HTTP, NNTP and the Unix Domain Protocols
Praised by reviewers and practicing TCP/IP programmers alike, the TCP/IP Illustrated series examines the many facets of the TCP/IP protocol suite using a unique and highly-effective visual approach that describes the inner workings of TCP/IP with detail, insight, and clarity. Volume 3 provides detailed more » coverage of four essential topics with which today's TCP/IP programmers and network administrators must be thoroughly familiar:
*T/TCP (TCP for Transactions), an extension to TCP that makes client-server transactions faster, more efficient, and more reliable;
*HTTP (Hypertext Transfer Protocol), the foundation for the rapidly expanding World Wide Web;
*NNTP (the Network News Transfer Protocol), the basis for the Usenet news system;
*UNIX Domain Protocols, a set of protocols used heavily in UNIX implementations.
As in the previous two volumes, the book is filled with examples and implementation details within the 4.4BSD-Lite networking code. The TCP/IP Illustrated series provides a complete picture of the protocol suite that drives the Internet, and gives programmers, system administrators, and serious users the information, understanding, and skills they need to remain at the forefront of networking technology. « less