{"id":2,"date":"2024-07-19T16:16:51","date_gmt":"2024-07-19T16:16:51","guid":{"rendered":"https:\/\/blogs.remiges.tech\/rigel-tech\/?page_id=2"},"modified":"2024-07-23T10:09:28","modified_gmt":"2024-07-23T10:09:28","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/blogs.remiges.tech\/rigel-tech\/","title":{"rendered":"Rigel for Developers"},"content":{"rendered":"\n<p>Remiges Rigel is an open source product which runs on servers and maintains a central repository of configuration variables and their values. Rigel runs only on Linux, and uses the Linux etcd system to maintain a replicated database of these values. The full source code can be downloaded from Github: see <a href=\"https:\/\/github.com\/remiges-tech\/rigel\">here<\/a>, <a href=\"https:\/\/pkg.go.dev\/github.com\/remiges-tech\/rigel\">here<\/a> and <a href=\"https:\/\/github.com\/remiges-tech\/rigel-ui\">here<\/a>.<\/p>\n\n\n\n<p>This blog carries technical articles to help developers learn about the nitty-gritty and integrate Rigel into their applications.<\/p>\n\n\n\n<figure class=\"wp-block-image alignfull size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"341\" src=\"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-content\/uploads\/sites\/10\/2024\/07\/kaffeebart-RTBGLx0K1Ns-unsplash-1024x341.jpg\" alt=\"\" class=\"wp-image-9\" srcset=\"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-content\/uploads\/sites\/10\/2024\/07\/kaffeebart-RTBGLx0K1Ns-unsplash-1024x341.jpg 1024w, https:\/\/blogs.remiges.tech\/rigel-tech\/wp-content\/uploads\/sites\/10\/2024\/07\/kaffeebart-RTBGLx0K1Ns-unsplash-300x100.jpg 300w, https:\/\/blogs.remiges.tech\/rigel-tech\/wp-content\/uploads\/sites\/10\/2024\/07\/kaffeebart-RTBGLx0K1Ns-unsplash-768x256.jpg 768w, https:\/\/blogs.remiges.tech\/rigel-tech\/wp-content\/uploads\/sites\/10\/2024\/07\/kaffeebart-RTBGLx0K1Ns-unsplash-1536x512.jpg 1536w, https:\/\/blogs.remiges.tech\/rigel-tech\/wp-content\/uploads\/sites\/10\/2024\/07\/kaffeebart-RTBGLx0K1Ns-unsplash-2048x682.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-d89aad35 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-query alignwide is-layout-flow wp-block-query-is-layout-flow\"><ul class=\"wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow\"><li class=\"wp-block-post post-1 post type-post status-publish format-standard hentry category-uncategorized\">\n\n<hr class=\"wp-block-separator has-text-color has-contrast-3-color has-alpha-channel-opacity has-contrast-3-background-color has-background alignwide is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-33233fb6 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:72%\"><h2 style=\"font-size:clamp(0.984rem, 0.984rem + ((1vw - 0.2rem) * 0.86), 1.5rem);line-height:1.1;\" class=\"wp-block-post-title\"><a href=\"https:\/\/blogs.remiges.tech\/rigel-tech\/hello-world\/\" target=\"_self\" >Hello world!<\/a><\/h2><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:28%\"><div class=\"wp-block-template-part\">\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n\t\n\t<div class=\"wp-block-group is-content-justification-left is-layout-flex wp-container-core-group-is-layout-dfe8e91f wp-block-group-is-layout-flex\">\n\t\t<div class=\"wp-block-post-date\"><time datetime=\"2024-07-19T16:16:51+00:00\"><a href=\"https:\/\/blogs.remiges.tech\/rigel-tech\/hello-world\/\">Jul 19, 2024<\/a><\/time><\/div>\n\n\t\t\n\t\t<p class=\"has-contrast-2-color has-text-color\">\u2014<\/p>\n\t\t\n\n\t\t\n\t\t<p class=\"has-small-font-size has-contrast-2-color has-text-color\">by<\/p>\n\t\t\n\n\t\t<div class=\"wp-block-post-author-name\"><a href=\"https:\/\/blogs.remiges.tech\/rigel-tech\/author\/shuvam\/\" target=\"_self\" class=\"wp-block-post-author-name__link\">Shuvam<\/a><\/div>\n\n\t\t<div class=\"taxonomy-category wp-block-post-terms\"><span class=\"wp-block-post-terms__prefix\">in <\/span><a href=\"https:\/\/blogs.remiges.tech\/rigel-tech\/category\/uncategorized\/\" rel=\"tag\">Uncategorized<\/a><\/div>\n\n\t<\/div>\n\t\n<\/div>\n\n\n<\/div><\/div>\n<\/div>\n\n<\/li><\/ul>\n\n\n<div style=\"height:var(--wp--preset--spacing--30)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What is Remiges Rigel?<\/h2>\n\n\n\n<p>Remiges Rigel is an open source product  which is very useful for large enterprise business applications. Any large business application has some  semi-constant configuration parameters, and which are expected to change without requiring any code change or build-test-deploy cycle. In the 20th century, such parameters were kept in configuration files, like Java property files. Rigel is very valuable for maintaining such configuration parameters. For instance, the number of days of gap after which pending transactions are to be expired, the number of bank accounts each investor can register for investment processing, the name of the directory in which video files and image files are to be stored, etc, are such configurable parameters. Changing the value of such a parameter must not force the application team to execute a fresh release of the application code.<\/p>\n\n\n\n<p>Rigel is written in Go and uses the Linux <strong><a href=\"https:\/\/etcd.io\/\">etcd<\/a><\/strong> system for its data store. Etcd is an excellent, light distributed data store for storing a few hundred data items across multiple servers.  It has features which no relational database can deliver easily, like watchers which wake up when a value is changed.<\/p>\n\n\n\n<p>The Rigel client library, available in Java and Go, runs in the address space of the business application, and connects directly to the <strong>etcd<\/strong> data store. There is no separate Rigel server which intermediates between the client library and the <strong>etcd<\/strong> data store.<\/p>\n\n\n\n<p>This client library can register watchers which will wake up as soon as a data value is changed, and pull out the latest values and cache them locally. This is useful for application stacks which run 24&#215;7 for months without restarting. This is vitally important to switch on debugging of a production system without restarting anything. If the debug log level is a Rigel configuration parameter, then an administrator can change the log level using the Rigel UI, and all instances of the application which are active on the cluster will all immediately switch on or switch off debug logging. No application restart is needed; the delay too is of the order of a few seconds.<\/p>\n\n\n\n<p>The client library pulls out all parameter names and values from the data store with one operation and caches them in its memory, thus reducing accesses to <strong>etcd<\/strong>. Rigel has a UI which can be used to edit values of configuration parameters at runtime. This UI applies its knowledge of the data schema on the values entered, and enforces type safety on the values. A parameter which is supposed to hold an integer will not be permitted to store a boolean, for instance.<\/p>\n\n\n\n<p>Rigel gains from the power of <strong>etcd<\/strong>, which can handle network partitioning or the loss of a leader. It automatically elects a new leader to keep the show going.<\/p>\n\n\n\n<p>Any Java Springboot programmer who is building a business application can integrate Rigel into his application.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Remiges Rigel is an open source product which runs on servers and maintains a central repository of configuration variables and their values. Rigel runs only on Linux, and uses the Linux etcd system to maintain a replicated database of these values. The full source code can be downloaded from Github: see here, here and here. [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":6,"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":21,"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/pages\/2\/revisions\/21"}],"wp:attachment":[{"href":"https:\/\/blogs.remiges.tech\/rigel-tech\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}