• chevron_right

      Erlang Solutions: Why Build A Bank In Elixir – Memo Bank’s Story

      Michael Jaiyeola · news.movim.eu / PlanetJabber · Friday, 6 August, 2021 - 11:16 · 5 minutes

    Elixir is a programming language that runs on the BEAM VM – the same virtual machine as Erlang – and can be adopted right throughout the tech stack. Elixir is designed to combine Ruby’s familiar syntax with the guaranteed performance, scalability, and resilience of Erlang. When choosing a programming language for software development within FinTech and financial services, uptime and fault-tolerance are of mission-critical importance and this is where Elixir will often be the right tool for the job.

    Here we take a look at the success story of Elixir in FinTech with Memo Bank , the first independent bank to be created in France in the last fifty years, that has just completed a new fundraising round of €13 million.

    THE MEMO BANK STORY

    ‘The kind of bank we wanted simply didn’t exist; so, we decided to build it.’

    This was the ambitious starting point for the genesis of Memo Bank, we will examine why and how they chose to build a fast, innovative, and secure banking system from scratch using Elixir as the programming language of choice.

    Memo was founded in 2017 and serves the European small and medium businesses (SMB) market, helping them to manage cash flows and fund their growth as a bank ‘designed by business people for business people’. The French based bank provides all the services you’d expect from a business bank, from current accounts to credit lines.

    Why Memo Chose Elixir

    There are 2 wonderful first hand accounts detailing the planning and architecting stages of the early days of Memo which you can find on their Medium profile . This section summarises their story.

    As Jérémie Matinez explains in his post ‘Why Elixir? An alchemy between backend and banking’, the advantage of building from the ground up, was that they could incorporate the most efficient procedures and modern technologies into their systems from the very start. The guiding principle was that, when it comes to banking, data (its accuracy, accessibility and security) were of paramount importance. To comply with financial services regulations and for customer trust, Memo needed to build a system that is always available anytime, from any device. Combined, these mission-critical requirements led to the decision to adopt Elixir for the core banking system and all of the other backend applications.

    Memo was particularly attracted to building in Elixir to leverage its immutability for ease of development and easier concurrency and testability, necessary when needing 100% reliability for a FinTech system. They also pinpointed the language as being able to reach the level of system scalability and availability needed to absorb real-time transactions.

    What else did they like?

    The good trade-off between performances and high level features

    Memo found that Elixir offered them the perfect balance between performance and features to provide them with the reliable structure to facilitate their ambitions at scale and provide high availability for reliable real-time transactions.

    Being built upon Erlang and targeted to run on the BEAM virtual machine, Elixir shares its performance and ecosystem advantages and concurrency model as standard. ​Also, Erlang is part of the exclusive club of the nine nines languages which makes it one of the most available and reliable platforms out there.

    The growing and solid community

    The Elixir developer community is very friendly and welcoming and the ecosystem is growing all the time. Memo’s team found that although it is a relatively new language, it does enjoy the availability of any tool that is written originally for an Erlang codebase. They also mention some of the extremely powerful frameworks that allow full-stack development, most prominently Phoenix Live View for web application development.

    Join us and the rest of the European Elixir community September 9-10 at ElixirConf EU hybrid conference in person in Warsaw, Poland or online.

    WHAT ELSE ELIXIR BRINGS TO THE TABLE FOR FINTECH

    Elixir is built on top of really mature and stable tech (Erlang and the Beam VM) with good documentation, which is a big plus point for any startup looking to grow trust within their customer base. It is used in many other successful FinTech companies such as Klarna and SolarisBank making it a battle-tested language for innovation in the industry.

    There are some major positives to opting for Elixir which meets the requirements of startups and scaleups in the space:

    • Scalability – If you reach your goals of millions of users, then you’ll have benefited from the reliability and scalability of the BEAM VM
    • Concurrency – handling a lot of simultaneous requests reliably such as from spikes in transactions
    • Easy to develop and maintainable – ease of usage and fast development for everything from fixing bugs to adding new features

    Overall what you gain from using Elixir for your FinTech project is a smaller more manageable codebase that is faster and significantly more reliable when compared to systems built in other programming languages.

    We worked with Bleacher Report, the leader in providing real-time, social-first, mobile-first sports content, to help them move their system from Ruby to Elixir. We achieved a 10x reduction in the time it takes to update the site for a system moving from 150 servers to just 8. Check out the case study here.

    ‘They were able to come in with their expertise, help us establish best practice and give us confidence that going forward our systems would be efficient and reliable.’

    Dave MarksSenior Engineering Director @ Bleacher Report

    SUMMARY

    Overall the Memo Bank system uses modern tools and processes and is designed for speed. The transactional core of Memo Bank is now fully powered by Elixir to deliver on its mission of maintaining customer account records with the highest possible availability and reliability. The Core Banking System is easily adaptable to new customer needs and produces accounting and regulatory reporting in real-time.

    What this success story shows is that whether you need to start from scratch or you already have an infrastructure to integrate with, Elixir is a proven, sound technological choice to build software that will adapt to your business and stand the test of time and scale.

    The Erlang Solutions team has worked closely with the Elixir core team since its inception. Whether you’re new to Elixir, looking to grow your team, add new functionality or integrate with a new system, we’re here to help you make it happen. Tell us about your project requirements here.

    The post Why Build A Bank In Elixir – Memo Bank’s Story appeared first on Erlang Solutions .

    • chevron_right

      Jérôme Poisson: Libervia progress note 2021-W31

      goffi · news.movim.eu / PlanetJabber · Tuesday, 3 August, 2021 - 11:03 · 7 minutes

    Hello,

    last weeks have been exhausting with lot of things at the same time. I've been preparing the release of the 0.8 version, and I wanted to have a couple of thing ready for that, notably a proper way to do translation.

    Preparation of 0.8

    As you may know, I've implemented a docker integration into Libervia to be able to run relatively easily third party software. This is working, but when testing in the production website I had to put the finishing touches to make it work (notably I've improved HTTP proxy and HTTPS management). I have then created projects and updated a couple of translations files.

    As you can now see on https://salut-a-toi.org/ , there is a translate menu. Unfortunately I've closed the account creation for the moment, as I have to deal with licensing first. Indeed, nearly all Libervia ecosystem is for now in AGPL v3+ , as there are only a few contributors (2 mains one, then only a small patches). The intent was and still is to be sure that the ecosystem stays in an Libre license, but this license may cause trouble in some edge cases, notably if we want to make an iOS frontend (the fruit store is notoriously causing trouble with AGPL licences).

    Thus, I'll bring the subject at next general assemble of the "Salut à Toi" association, and see what we should do. One option could be to use FSF's Fiducial Licence Agreement to let the association the possibility to modify the licence as long as it stays a libre one. It would then be possible to add an exception for an iOS frontend. An other would be to avoid totally iOS. Anyway, this need some time and discussions, and if I open translations and get several contributions under AGPL v3+, it may be harder to set this up.

    Weblate integrated in the official website

    An other time consuming task was to continue with renaming and adapt package names (notably in Pypi ). I've used a little trick to redirect legacy packages to the new ones: a new version of each legacy package is a simple setup.py depending on the new package (you can see it e.g. for sat package ). I've also put in place a redirection on the Mercurial repositories, using the old repos will redirect to the new ones.

    Finally, I've published the 0.8.0 beta 1 . You can install it easily with pipx :

    • First install pipx as explained in its documentation
    • Then install the backend with pipx install libervia-backend . You can follow the documentation to see how to configure it and launch it. This will include the CLI and TUI frontends.
    • If you want to test graphical frontends, you'll have to install Libervia Media with hg clone https://repos.goffi.org/libervia-media (assuming that you have Mercurial already installed), then add it into your libervia.conf
    • To install the Desktop frontend, use pipx install libervia-desktop
    • To install the Web frontend, use pipx install libervia-web

    Note that the Desktop frontend is still for early adopters, I need to refactor message handling and do some optimisation and stabilisation to make it pleasant to use.

    Please send feedbacks either as bug reports/feature requests on the official bug tracker , or on the XMPP chat room at sat@chat.jabberfr.org . I plan to only fix major issues though, as I'm now fully working on 0.9 and I'm focusing mainly on the ActivityPub gateway. However, bug reports/feature requests will be taken into account for 0.9 if not fixed directly in 0.8.

    ActivityPub Gateway

    After the hard work to move 0.8 close to the finish line has been done, I've started to work on 0.9 and thus the ActivityPub gateway. The first major thing to do was a refactoring of offline storage. Indeed Libervia (or SàT at the time) was started a long time ago with an Async framework ( Twisted ) long before asyncio even existed. SQLite has been chosen as backend to store data, and a hand made module based on Twisted's adbapi has been created. Despite the rough edges is has been working quite well all this time, and there was even a semi automatic way to update schemas between version. But the whole thing was starting to be difficult to maintain, and the schema update instructions were all kept in the same file.

    Fortunately, SQLAlchemy , the most famous SQL databases abstraction with an optional Object Relational Mapper has recently added support for asyncio .

    SQLAlchemy is a very powerful and widely used tool, so it has been a quite obvious decision to use it to replace the old system. But to use it, Twisted needs to use an asyncio loop, and Libervia was using GLib loop (or reactor in Twisted terms), due to the dependency to dbus-python .

    Dbus-Python is, by its own authors words, not be the best D-Bus binding to use due to unfortunate design decision, so it was the occasion to replace it, and I've moved the backend to TxDBus , a Twisted native D-Bus implementation, which can run with any Twisted reactor. For technical reason, dbus-python is still used for frontends at the moment, but I plan to completely replace it before the end of 0.9 development.

    This has required some work, but it was worth it, and after that I could switch to asyncio reactor and implement SQLAlchemy. I've decided to go with the ORM and not the core only as it is opening neat possibilities. I've first made a mapping corresponding to the last version of the database used for Libervia 0.8.

    Once SQLAlchemy has been implemented and working, the next obvious decision was to use Alembic , the recommended SQLAlchemy based database migration tools (by the same authors). Thanks to this, migration files are now in separated files, and are really easy to create (Alembic can autogenerate a good part of a script when a migration is needed).

    Thanks to all this, I can now easily make changes in database (while in old system I was hesitating due to the work implied). SQLAlchemy also paves the way to support other databases than SQLite. Even if I'm currently sticking with SQLite only, to keep focus, I'll probably add support for PostgreSQL and MariaDB/MySQL at some point.

    Once all this work on storage backend has been finalised, the pubsub cache has been implemented.

    Pubsub cache is operated transparently for end-user, and stores locally pubsub items (according to internal criteria). This is useful for many reasons: performances of course, but also it allows to do data analyse/indexing, for instance to retrieve all items with some terms (e.g.: to search by categories or hashtags). Pubsub cache is also useful to store data in a component (what is of interest for the ActivityPub gateway), or to store decrypted data (which will be of interest when we'll work on the e2e encryption with pubsub).

    I'll pass the implementation details, you'll find the code on the 0.9 bookmark , notably in the pubsub cache plugin , and I've written documentation for developers for some explanations.

    New commands has been added to libervia-cli to manage the cache, in particular there is a purge command to delete items according to given criteria, which will save resources and disk space. With it, it's possible to delete only certain types of items (e.g. only blog posts), for all or only some profiles (for instance, only for the AP gateway). You can say a limit (e.g. delete all items which have not been updated for 6 months). Here again, documentation has been written to explain the commands.

    While doing all that, I've noticed problem to cache correctly items (because of the flexibility of XMPP Pubsub, it's hard to impossible to say if we can share cache between users), thus I've written a protoXEP (i.e. a proposition for an XMPP Extension Protocol, or XEP ) to fix the problem: https://xmpp.org/extensions/inbox/pubsub-caching-hints.html .

    I've also submitted a pull request to fix a problem in XEP-0060 (Publish-Subscribe) .

    While I was a working with standards, I've updated a XEP I've authored a couple of years ago to specify order of items: XEP-0413: Order-By .

    Last but not least, while doing the tests for the pubsub cache I've created some helping methods (or fixtures in pytest terms) to help doing unit test.

    This concludes the first step of the XMPP-ActivityPub gateway which was, as anticipated, a big one. The following steps should be done more quickly, and work on 0.8 should not be on the way anymore (I plan to publish 0.8 in early September).

    That's all for this note, see you next time.

    • wifi_tethering open_in_new

      This post is public

      www.goffi.org /b/libervia-progress-note-2021-w31-Ua14

    • chevron_right

      ProcessOne: ejabberd 21.07

      Jérôme Sautret · news.movim.eu / PlanetJabber · Monday, 26 July, 2021 - 09:53 · 4 minutes

    This new ejabberd 21.07 release includes many improvements and bugfixes in more than 130 commits.

    ejabberd 21.07 released

    When upgrading from previous versions, please notice: there is a suggested change in all SQL databases schemas , another suggested change specific for MySQL, an API change in srg_create , and major changes in ejabberdctl help .

    Support for rebar3 has improved to allow building an OTP release . And support for Elixir has improved to use mix for compilation and build releases. So, you may want to use --with-rebar=rebar3 | mix and benefit from those tools features over rebar. Nevertheless, rebar is still used by default, and its support will be maintained for a long time as it’s used by several automatic build processes.

    A more detailed explanation of those topics:

    Add missing indexes to SQL sr_group table

    The sr_group table in SQL databases got a new index.

    If you store Shared Roster Groups in a SQL database, you can create the index corresponding to your database type, check the example SQL queries in the commit .

    MySQL Backend Patch for scram-sha512

    The MySQL database schema has improved to support scram-sha512 ( #3582 )

    If you have a MySQL database, you can update your schema with:

    ALTER TABLE users MODIFY serverkey varchar(128) NOT NULL DEFAULT ’’;ALTER TABLE users MODIFY salt varchar(128) NOT NULL DEFAULT ’’;

    Change in srg_create

    That command API has changed the name argument to label , for coherence with the changes in the ejabberd Web Admin page.

    Check ejabberdctl help srg_create or the API page .

    Changes in ejabberdctl help

    The help command has changed its usage and results.

    If you use that command in some automatic script, please check ejabberdctl help and adapt your scripts accordingly.

    Build a release using rebar3 and mix

    It is now possible to build a release when using rebar, rebar3 and mix. Until now this was only supported when using rebar. In this sense, a recent rebar3 binary is included with ejabberd now.

    For example usage, check the Production Release documentation section.

    Are you curious about what a release is in the Erlang/OTP world? Check Adopting Erlang and Rebar3 .

    Build a development release

    Now it is possible to build a development release when using rebar3 or mix. It allows running ejabberd in the local machine for development, manual testing… without installing in the system.

    For example usage, check the Development Release documentation section.

    By the way, Makefile has so many targets that now there’s a summary of them:

    make help

    Support to use mix in configure

    The configure script supports rebar, rebar3 and Elixir ‘s mix. Until now only rebar and rebar3 were supported.

    If you want to compile ejabberd using mix, in theory any recent Elixir version is supported. But make rel requires Elixir 1.10.3 or higher.

    Example usage:

    ./configure --with-rebar=mixmake rel_build/prod/rel/ejabberd/bin/ejabberd start_iex

    Summary of changes

    Compilation

    • Add rebar3 3.15.2 binary
    • Add support for mix to: ./configure --enable-rebar=mix
    • Add make dev to build a development release with rebar3 or mix
    • Improved make rel to work with rebar3 and mix
    • Hex : Add sql/ and vars.config to Hex package files ( #3251 )
    • Hex : Update mix applications list to fix error p1_utils is listed as both...
    • There are so many targets in Makefile… add make help
    • Fix extauth.py failure in test suite with Python 3 ( #3612 )
    • Added experimental support for GitHub Codespaces
    • Switch test service from TravisCI to GitHub Actions ( #3613 )

    Commands:

    • Display extended error message in ejabberdctl ( #3584 )
    • Remove SMP option from ejabberdctl.cfg, -smp was removed in OTP 21 ( #3560 )
    • create_room : After creating room, store in DB if it’s persistent ( #3632 )
    • help : Major changes in its usage and output ( #3569 )
    • srg_create : Update to use label parameter instead of name ( #3578 )

    Modules:

    • ejabberd_listener : New send_timeout option
    • mod_mix : Improvements to update to 0.14.1 ( #3634 )
    • mod_muc_room : Don’t leak owner JIDs ( #3615 )
    • mod_multicast : Routing for more MUC packets
    • mod_multicast : Correctly strip only other bcc addresses ( #3639 )
    • mod_mqtt : Allow shared roster group placeholder in mqtt topic ( #3566 )
    • mod_pubsub : Several fixes when using PubSub with RSM ( #3618 )( #3621 )
    • mod_push : Handle MUC/Sub events correctly ( #3565 )
    • mod_shared_roster : Delete cache after performing change to be sure that in cache will be up to date data ( #3578 )
    • mod_shared_roster : Improve database and caching
    • mod_shared_roster : Reconfigure cache when options change
    • mod_vcard : Fix invalid_encoding error when using extended plane characters in vcard
    • mod_vcard : Update econf:vcard() to generate correct vcard_temp record
    • Translations : Major improvements in the Indonesian and Portuguese translations
    • WebAdmin : New simple pages to view mnesia tables information and content
    • WebSocket : Fix typos ( #3622 )

    SQL:

    • MySQL Backend Patch for scram-sha512 ( #3582 )
    • SQLite : When exporting for SQLite, use its specific escape options ( #2576 )
    • SQLite : Minor fixes for new_sql_schema support ( #3303 )
    • mod_privacy : Cast as boolean when exporting privacy_list_data to PostgreSQL ( #1773 )
    • mod_mqtt : Add mqtt_pub table definition for MSSQL ( #3097 )
    • mod_shared_roster : Add missing indexes to sr_group tables in all SQL databases

    ejabberd 21.07 download & feedback

    As usual, the release is tagged in the Git source code repository on Github .

    The source package and binary installers are available at ejabberd XMPP & MQTT server download page .

    If you suspect that you’ve found a bug, please search or fill a bug report on Github .

    The post ejabberd 21.07first appeared on ProcessOne.
    • chevron_right

      Erlang Solutions: FinTech Matters newsletter #1 July 2021

      Michael Jaiyeola · news.movim.eu / PlanetJabber · Wednesday, 7 July, 2021 - 11:11 · 2 minutes

    fintech newsletter

    Subscribe to receive FinTech Matters and other great content, notifications of events and more to your inbox, we will only send you relevant, high quality content and you can unsubscribe at any time.

    Read on to discover what really matters for tech in financial services right now for the Erlang ecosystem and beyond.

    With most people’s summer plans thoroughly disrupted for another year, there is not much sign of winding down for holidays in the FinTech space just yet with mega investment rounds and big deals making the news. If you haven’t already subscribed for regular updates on tech innovation in the industry – click the button below.

    Michael Jaiyeola, FinTech Marketing Lead

    [Subscribe now]

    The Top Stories Right Now

    Goldman Sachs starts trading on JPMorgan’s Onyx blockchain platform

    Goldman Sachs Group has joined JPMorgan’s Onyx trading platform that is based on the Ethereum blockchain. They will use the platform to execute smart contracts in the repo market, a digital version of the dollar repurchase agreement. The use of blockchain technology will solve the pain points around conducting large-scale transitions in the repo market.

    Read more

    The UK and Nordics lead Europe’s Open Banking

    A new report by Mastercard has revealed the UK and Nordic countries as being best placed to take advantage of open banking thanks to their advanced digital infrastructures, high-speed broadband accessibility and smartphone usage.

    Open banking is the technology and regulation that has democratised banking data, putting consumers more in control of how they use their financial information and opening the door for innovative fintech firms to offer exciting alternative products. By early 2021, more than 3 million UK consumers and businesses used open banking products. And, most recently, we have seen global payments giant Visa acquire the Swedish open banking provider Tink in a €1.8bn deal.

    Read more

    Klarna raises $639M at a $45.6B valuation thanks to US growth

    Klarna, the European BNPL provider, has raised fresh funding as it heads towards IPO amid “massive growth” in the US market.  Klarna is now established as the highest-valued private FinTech in Europe. The increase in US users has been dramatic, growing from 10 million towards the end of 2020 to 18 million. Overall, Klarna operates in 20 countries and has more than 90 million global active users making more than 2 million transactions a day conducted on its platform.

    Read more

    What Else We’re Reading

    5 Interesting Use Cases of Erlang and Elixir in Financial Services

    Lessons FinTech Can Learn from Telecoms

    We’re joining FinTech Week London on July 12 to co-present a panel discussion livestream from Barclays Rise – ‘What’s Next for Blockchain in Financial Services’. You can r egister for free here .

    RabbitMQ Summit is happening 13-14 July – RabbitMQ is the Erlang based message broker used by many of the major global financial services firms including Goldman Sachs,  Credit Suisse and JPMorgan

    Trifork – our parent company has undergone a very successful IPO bringing many more new shareholders and investors to the group which will help power our continued success in the development of technologies that make people’s lives better.

    Erlang Solutions byte size

    To make sure you don’t miss out on any of our leading FinTech content, events and news, do subscribe for regular updates. We will only send you relevant high-quality content and you can unsubscribe at any time.

    Connect with me on LinkedIn

    Email: michael.jaiyeola@erlang-solutions.com

    The post FinTech Matters newsletter #1 July 2021 appeared first on Erlang Solutions .

    • chevron_right

      Ignite Realtime Blog: Smack 4.4.3 released

      Flow · news.movim.eu / PlanetJabber · Tuesday, 6 July, 2021 - 12:56

    We are happy to announce the availability of Smack 4.4.3, the third patch level release of Smack’s 4.4 series. It mostly contains bugfixes. Thanks to everyone who contributed by reporting and fixing bugs. As always, this Smack release is available via Maven Central .

    We would like to use this occasion to point at that Smack now ships with a NOTICE file. Please note that this adds some requirements when using Smack as per the Apache License 2.0 . The content of Smack’s NOTICE file can conveniently be retrieved using Smack.getNoticeStream() .

    1 post - 1 participant

    Read full topic

    • chevron_right

      Erlang Solutions: Our Take on Blockchain in FinTech and the BEAM

      Michael Jaiyeola · news.movim.eu / PlanetJabber · Tuesday, 6 July, 2021 - 08:03 · 4 minutes

    As things stand, FinTech solves problems and addresses pain points through innovative models, however, it is still reliant on legacy banking infrastructure. Cryptocurrency and its underlying technology, blockchain, has the power to revolutionise that infrastructure and, in doing so, revolutionise financial services work. Even though Bitcoin has been making the big headlines, the main use cases in financial services are more practical – to store data in blockchain-based distributed databases for better efficiency and transparency. For example, we’ve seen our FinTech clients use blockchain, for storing financial operations logs and signature management. There are other uses too: for example, in lending blockchain can remove the need for centralised gatekeepers, making it more secure to borrow money and provide lower interest rates or in trade finance creating more transparency, security and trust among the trade parties. There are many other use cases for the technology and we will explore them in detail as part of Fintech Week London for our sponsored session panel discussion ‘What’s Next For Blockchain In Financial Services’ on 12 July – you can get a free all-access online pass discount code here.

    So, how does the landscape look right now? Firstly, there is a substantial difference in how blockchain can be used by players in different segments of financial services. Established banks and technology firms are primarily focusing on the applications for digital identities and regulatory compliance, whereas ‘start-up operators’ are mostly engaged in activities related to capital markets.

    For banks blockchain’s power to reduce operational costs is the strongest business case while the current most relevant segment is that of payments. A decentralised ledger for payments can facilitate faster payments at lower fees, while clearance and settlement can get closer to real-time at reduced costs away from time-consuming and error-prone settlement processes.

    Encouragingly for those working with blockchain, PoCs are being replaced with deployments to real production systems. While most use cases remain private and permissioned at this point, they are an encouraging indicator. The underlying technology of the network and protocol layers are now widely accepted as robust and stable allowing innovations to move to the application layer where the real value lies. As the higher stack application layer is more nascent, this is where using developers who are experienced becomes especially valuable to avoid wasting time and resources.

    Technologies based on the BEAM VM and OTP such as Erlang and Elixir are often the right tool for the job when it comes to embarking upon a blockchain project. You can find the languages being used by a number of players in the space such as with ArcBlock’s blockchain developer platform that has a core infrastructure powered by BEAM technologies. Check out our recent webinar with Ty Chen, VP of Engineering,  on building dApps on blockchain using Erlang. They chose Erlang because it comes with built-in features that are critical to a blockchain system, like hot-upgrade, concurrency and high availability. This solid foundation has meant their team can focus more on building high-level features and making their platform developer friendly. Another example is POA Network, the Ethereum-based sidechain that offers an open-source framework for smart contracts to solve scalability, affordability, and interoperability issues. Erlang and Elixir give them the lightweight code needed to run thousands of processes concurrently on the same virtual machine, which is beneficial for scaling.

    Our team consists of domain experts who have been involved in a wide variety of innovative blockchain projects with our clients. æternity blockchain is an Erlang-based scalable smart contract platform that looks to address some of the most fundamental​ elements of the technology – contract language, oracle and governance mechanisms and methods of consensus. æternity uses Erlang because it allows their team to write code that can respond to many requests in parallel and without crashing. You can check out the case study here: https://www.erlang-solutions.com/case-studies/aeternity/

    The last few years show blockchain technology stacks that can solve real problems in financial services. Ultimately, true advancements will emerge from the intersections of different disciplines. Interfaces of blockchain technologies with AI, ML and IoT need to be explored as we move to greater actual design and production engineering.

    At Erlang Solutions we continue to collaborate closely with our partners in researching and delivering innovative solutions to support blockchain projects. This ranges from core blockchain technologies to more specific distributed applications supported by automated smart contracts. As experts with cutting edge know-how derived from direct exposure in building blockchain solutions and having been operating in this space for quite some time, we advocate that business leaders, regardless of industry, consider how to best use the technology to unlock value in their business models.

    Join us to as we talk about the wider industry at Fintech Week London on July 12. Register for free.

    The post Our Take on Blockchain in FinTech and the BEAM appeared first on Erlang Solutions .

    • chevron_right

      Monal IM: Monal 5.0 released with group chat and voice messages

      emus · news.movim.eu / PlanetJabber · Monday, 28 June, 2021 - 19:28 · 3 minutes

    Hello everyone!

    Well, you read correctly: Monal supports group chat and voice messages now! Apart from this an insane amount of work has been put into this update. Let’s look at the details! But first let’s say many thanks to our core developers who made this update happen: Thilo Molitor and Friedrich Altheide . Apart from this also many thanks to the support of Anu Pokharel (initial author), Jim Tsai , Jan Stoyke and Edward Maurer for the contribution and support! Last but not, least also great thanks to all the reviewers and testers of the beta and alpha builds! Please keep on doing! ( Here you can read how to support the development )

    This version 5.0 is a very big update to Monal. But it is and was also hard and tedious work. So now – what’s in it?

    MUC, group chat Monal has group chat support

    New features worth to mention:

    • The group chat function (MUC) has been rewritten entirely and now works reliably.
    • Added voice messages and sending videos
    • QR-code scanning for macOS (including account setup, adding contacts and validating OMEMO keys)
    • MUC Bookmarks ( XEP-0048 ) (This was the five years old #1 community wish ! Great Thilo <3)
    • Privacy: Push server now uses XMPP for registering new push tokens (now the Monal appserver never sees your IP)
    • MacOS (especially on Apple Silicon devices) now has real push support and can receive messages even if the app is closed, like iMessage does.
    • MacOS: drag drop support for files
    • Photo share option on iOS
    • Showing of own OMEMO key QR codes for quick fingerprint verification (Thank you Friedrich for diving into this rabbit hole!)
    • Encryption: Show trust stage (ToFU ( Trust on First Use ) , trusted, untrusted)
    • New upload queue user interface for sending multiple files at once. This makes Monal send files after confirmation only.
    • Chat: Message quote swipe action
    • Chat: Show Emoji in bigger font
    • Added image quality slider in settings to configure quality of sent images
    • Buddies can be muted per account
    • TLS 1.3 support (if not connected via STARTTLS, and really your server should support direct TLS nowadays!)

    Resolved issues (especially with OMEMO encryption) :

    • OMEMO encryption to and from Sisikin IM or Beagle IM is now functional
    • Improve OMEMO encryption handling for broken sessions
    • Persistence of trust levels even if OMEMO encryption errors occur
    • Increased app startup speed
    • Fixed crash on account deletion
    • Do not allow change of account ID (JID)
    • Send Last Message Correction encrypted if used in an encrypted chat
    • Many small and bigger fixes, improvements and stability changes.

    Of course this is just a limited summary, find a detailed listing here . Almost all code has been touched and many parts have been rewritten. We have received many question on improvements – now your patience paid of. The app should update itself – otherwise take a look at the App Store.

    And now? First thing YOU can do is saying thanks to the developers. You can reach the public chat here .

    Second, Monal is being developed entirely in spare-time of the named developers and has no commercial interest – for the freedom of software but also to enable add- and tracking-free communication. More than 500 hours of software engineering work have been spent on this update. If that would have been paid, one could talk about more than 20,000 USD (approx. 16,500 EUR) (assuming 40 USD per hour) . Therefore, we kindly would ask you to consider to make a donation . We will spend the money on the very expensive Apple hardware (we need a M1 mac for faster builds – that would significantly increase the development speed).

    If you have hardware to donate please reach out to us first!

    Last but not least, you can check out the new features and give us feedback, that helps a lot to improve the app. Read about how to support!

    What else? There are still many things to do. We plan to implement encryption in group chats (MUC OMEMO, XEP-0384 ) and also implement Audio and Video Calls. Furthermore, some polishing and other less important things also need to be done. Finally, do you know someone you could imagine to volunteer in support visual design and improvement of the app’s interface? Then please reach out to us as well.

    Spread the word! We have this blog but also a Mastodon account , Twitter account and you can read this via the Planet Jabber RSS feed .

    Development is conducted via GitHub .

    Let’s change the digital communication via XMPP in the Apple environment, together!

    Your Monal IM developers!

    • wifi_tethering open_in_new

      This post is public

      monal.im /blog/monal-with-group-chat-and-voice-messages/

    • chevron_right

      Erlang Solutions: 5 Erlang and Elixir Use Cases In FinTech

      Michael Jaiyeola · news.movim.eu / PlanetJabber · Thursday, 24 June, 2021 - 13:48 · 5 minutes

    It can hardly be described as ‘secret sauce’ anymore, given that Cisco ships 2 million devices per year running Erlang. That means a whopping 90% of internet traffic is going through routers and switches controlled by Erlang. But what is perhaps less well known within the tech community is that, away from telecoms, Erlang and other languages running on the BEAM virtual machine are powering some of the world’s biggest and most productive financial services systems. Here are just five to start with.

    1. Vocalink

    Why Erlang?

    For ultra-reliable transaction delivery

    Erlang is used for immediate payment switches by many companies facilitating instant bank transfers and bill payment services. Erlang, Mnesia and RabbitMQ are used for Vocalink’s global instant payment systems (IPS) which enables real-time payments in Singapore, Thailand, the US and other countries. The Vocalink IPS is now in use by The Clearing House – the banking association and payments companies owned by the largest commercial banks in the US. It has also been selected as the payment technology for the innovative P27 Scandinavian cross/border payment initiative.

    Vocalink has been a driving force around the world in the evolution of real-time payments for over a decade. These real-time solutions sit at the centre of the global payments infrastructure and are designed to ‘run on their own rails’ at a massive scale. Their systems are relied on by financial institutions, corporates and governments to provide high availability and resilient payment solutions.

    The ability to be able to securely and reliably handle payments requests at scale is thanks to Erlang, which, being originally designed for telecoms switching, is ideal for systems that need to be always on and always processing.

    2. Æternity

    Why Erlang and Elixir?

    For groundbreaking innovation with smart contracts and blockchain

    æternity is one of the world’s most innovative open-source blockchains with an ambitious mission to bridge the gap between technology and society. They are using Erlang to scale a distributed peer-to-peer network and make their blockchain more reliable and available.

    Founded in 2016 by Yanislav Malahov, known in some circles as “the Godfather of Ethereum”, æternity is designed to deliver productivity, transparent governance, and global scalability. Erlang Solutions were engaged to help them tackle the issues of scalability, which are inherent in modern blockchains.

    The platform needed to handle large volumes of information in parallel. They wanted to increase transaction speed and scalability while also ensuring privacy by designing a unique state channel to enable the off-chain verification of data and smart contracts, allowing for all transactions to be independent of each other. The Erlang-based smart contract platform features oracles, a unique governance system, and a functional smart contract language called Sophia.

    3. Solaris Bank

    Why Erlang and Elixir?

    To be disruptive via fast and agile development

    Solarisbank is a Berlin-based 400-person FinTech company making waves at a pace rarely seen before in the financial industry. Their Banking-as-a-Service platform enables businesses to offer their own financial products via Elixir powered APIs. It took Solarisbank less than three years to build the platform, scale up a team, and raise almost €100m in funding with investments.

    Their full banking license enables companies to offer their own financial products. Partners can access Solarisbank modules in the fields of e-money, instant credit, lending, and digital banking as well as services from third-party providers integrated with the platform via an API.

    4. Goldman Sachs

    Why Erlang?

    To create system reliability for application innovation

    The Erlang programming language is being used by Goldman Sachs in part of its hedge fund trading platform. Erlang is used as part of the real-time monitoring solution for this distributed trading system enabling changes to be made rapidly in response to market conditions.

    Goldman Sachs leverages hundreds of applications communicating with each other. The Data Management and Distribution group provide messaging middleware services to the firm’s ecosystem. RabbitMQ, which is built in Erlang, is a key part of the messaging portfolio at Goldman Sachs.

    RabbitMQ is a free, Open Source message broker that is highly available, fault-tolerant and scalable. As a system middleware layer, it enables different services in your application to communicate with each other optimally. The key value of using RabbitMQ at Goldman Sachs has been the freedom it has afforded its developers to innovate with minimal friction. This freedom helps Goldman Sachs to be one of the traditional financial services firms recognised as keeping pace with the most exciting FinTechs. You can learn more about how Goldman Sachs uses RabbitMQ in their talk at RabbitMQ Summit 2018 .

    5. Sum Up

    Why Erlang and Elixir?

    Because of their 24/7 system availability and fault-tolerance

    SumUP is the leading mobile point-of-sale (mPOS) company in Europe, enabling hundreds of thousands of small businesses in countries worldwide to get paid. They used Erlang to build their payment service from scratch.

    They picked Erlang as the ‘right tool for the job’ because card processing is an industry requiring backend systems of a certain type, where availability and fault-tolerance is a must, and Erlang boasts a battle-proven track record in delivering this in telecoms and FinTech.

    Nowadays, beyond the original hardware, mobile, and web apps, SumUp has also developed a suite of APIs and SDKs for integrating SumUp payment into other apps and services.

    SUMMARY

    As you can see Erlang, Elixir and other BEAM VM based technologies are being used in production across the FinTech landscape – this includes private and public blockchain, payment and credit card gateways, banking APIs and more traditional infrastructure management. In fact, it is likely you will find an Erlang team in all of the major banks and financial institutions.

    It is easy to build prototypes with Erlang which is why it’s a great choice for fast-moving FinTech startups. While the Elixir programming language mixes the best of Erlang in terms of runtime, the concurrency model, and fault-tolerance, with powerful and battle-tested frameworks.

    There are many more use cases for Erlang and other BEAM VM technologies from the biggest investment banks in the world to nimble FinTech challengers. Stay tuned to find out more soon.

    Sign up for our FinTech newsletter >

    The post 5 Erlang and Elixir Use Cases In FinTech appeared first on Erlang Solutions .

    • wifi_tethering open_in_new

      This post is public

      www.erlang-solutions.com /blog/5-erlang-and-elixir-use-cases-in-fintech/

    • chevron_right

      Monal IM: Vaxbot on Canadian National News

      Anu · news.movim.eu / PlanetJabber · Monday, 21 June, 2021 - 12:54

    Vaxbot , a service built by the Monal team to vaccinate people in the US and Canada was featured on the Canadian Broadcast Corporation (CBC) The National and was broadcast nationwide.

    This was great exposure for the project and XMPP in general, introducing it to a whole new population that likely skews older and less tech savvy. They don’t show Monal but you can see one of the users in the clip using Converse.js to access the bot. There has been a massive spike in new users since it aired on TV. At its peak in the US, we were doing about 1 million messages a day. We are approaching 800k again in Canada now.

    • wifi_tethering open_in_new

      This post is public

      monal.im /blog/vaxbot-on-canadian-national-news/